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

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

Simple_Scada

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

ЦитироватьПопробовал с фигурой - не получается заставить светиться фоновым цветом, отображается черная дыра - желтый!
Не понятно, что именно не получается и что в Вашем понимании означает "отображается черная дыра - желтый"? Пример проекта с изменением цвета и миганием для объекта "Фигура" во вложении. Запустите его, посмотрите, затем откройте через редактор и посмотрите скрипты. Примеры других скриптов для изменения цвета или мигания можно найти по ссылке.

ЦитироватьЕще... смотрел ваши проекты и мне понравились рисунки на мнемосхемах. В какой программе Вы их создаете?
Это проекты, которые пользователи присылают и выкладывают самостоятельно, поэтому нам не известно какие графические редакторы использовались при создании проекта. Для создания изображений и анимации подойдет любой графический редактор поддерживающий работу с ".png" изображениями, например PaintNET, Gimp, Photoshop и т.д.

kolya_asu

#1006
Получилось. Оказывается, что надо обязательно "заливать" фигуру каким-нибудь цветом, иначе будет черная заливка и убрать ее через стандартные свойства объекта не получится, только через скрипт закрашивать надо. Вот так работает у меня:
Код: pascal
begin
  if Sender is TM_Shape then   // проверяем, что Sender это изображение
    with Sender as TM_Shape do // приводим Sender к типу "TM_Image"
 { если значение переменной (в виде целого числа),
   которая связана с изображением равно 1, то }
     begin
     FlashColor := clNone;
     case VariableEx.AsInt of              // если значение переменной равно:
     1:
        begin
          Color := clSilver;
          FlashColor := clYellow; // включить мигание зеленым цветом
        end;
    end;
  end;
end.

kolya_asu

#1007
Подскажите пожалуйста, как установить высший приоритет для доп. переменной. Чтобы когда переменная ЕХ в "1", то не происходило переключение кадров при изменении основной переменной. Хочу сделать, чтобы скрипт не выполнялся дальше при ЕХ="1". Подправте пожалуйста.
Код: pascal
begin
  if Sender is TM_Image then   //
    with Sender as TM_Image do //
    if VariableEx.AsInt = 1 then
    EXIT
      if AsInt = 1 then
        Frame := 2        //
      else                //
        Frame := 1;       //
end.         

Timothy Clement

Ну проще всего наверное так
Код: pascal
begin
  if Sender is TM_Image then   //
    with Sender as TM_Image do //
    if VariableEx.AsInt <> 1 then
      if AsInt = 1 then
        Frame := 2        //
      else                //
        Frame := 1;       //
end. 
Если доп переменная не = 1, тогда менять по основной

kolya_asu

#1009
Спасибо! Теперь когда доп. переменная ЕХ в "1", а основная меняет свое состояние, кадр картинки не меняется. Но когда  переменная ЕХ переходит обратно в "0" то она всегда переводит картинку в кадр№1, хотя в данный момент основная переменная уже находилась в "1" и должен отображаться кадр №2. Я так понимаю, что теперь надо что-то подправить в скрипте который вызывается по OnDataChangeEx.
Код: pascal
begin
  if Sender is TM_Image then   // проверяем, что Sender это изображение
    with Sender as TM_Image do // приводим Sender к типу "TM_Image"
      if VariableEx.AsInt = 1 then
       Frame := 3        // показать 3-й кадр изображения
      else
       Frame := 1     // показать 1-й кадр изображения
end.
Что надо вписать в строку
Код: pascal
Frame := 1     // показать 1-й кадр изображения
, чтобы туда подставлялось значение основной переменной (1-й или 2-й кадр)?

Timothy Clement

#1010
Уберите из скрипта вообще условие else
Код: pascal
begin
  if Sender is TM_Image then   // проверяем, что Sender это изображение
    with Sender as TM_Image do // приводим Sender к типу "TM_Image"
      if VariableEx.AsInt = 1 then Frame := 3;        // показать 3-й кадр изображения
end. 

3й кадр будет показываться только по доп переменной, 1 и 2 когда доп = 0 и изменяется основная

Simple_Scada

kolya_asu, у Вас проблема в том, что Вы написали два скрипта для изменения кадра одного и того же изображения и поставили их на разные события: OnDataChange и OnDataChangeEx. Эти события выполняются только при изменении переменной события.

ЦитироватьНо когда  переменная ЕХ переходит обратно в "0" то она всегда переводит картинку в кадр№1,
Правильно, т.к. выполняется скрипт OnDataChangeEx по изменению доп. переменной.

Цитироватьхотя в данный момент основная переменная уже находилась в "1" и должен отображаться кадр №2.
Скрипт OnDataChange по основной переменной выполнится только при ее изменении, а так как она не изменилась, скрипт не выполнился и кадр не сменился на второй.

Вам нужно сделать один скрипт со всеми условиями и поставить его на события OnDataChange и OnDataChangeEx изображения:
Код: pascal
begin
  if Sender is TM_Image then
    with Sender as TM_Image do
      if VariableEx.AsInt <> 1 then
        if AsInt = 1 then
          Frame := 1
        else
          Frame := 2
      else
        Frame := 3;
end.

Пример проекта во вложении. В примере использовано Ваше изображение с тремя кадрами из сообщения #985.

emoxristov


Simple_Scada

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

ЦитироватьЧто это значит : max 72 ?
Это максимальное количество изменений тегов в секунду.

ЦитироватьПожалуйста, пришлите мне пример на emoxristov@abv.bg
Пример отправили.

emoxristov

#1014
Спасибо все работает отлично.

Миханик

Есть 3G-роутер IRZ RU21. Могу ли я отправлять СМС из скады через него?
На сайте в дополнительных функциях указана поддержка отправки SMS через Telnet, если это поможет.

Simple_Scada

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

Необходимо, чтобы GSM-модем поддерживал работу через COM. После установки драйверов модем должен определяться в диспетчере устройств как COM-порт (возможно эмулировать COM-порт). Если модем может принимать и выполнять AT-команды через COM-порт, то отправка SMS выполнится успешно.

ARokhmanko

Добрый день!

Недавно скачал для пробы Simple-Scada и собираемся купить в ближайшее время одну лицензию для тестирования в проекте.
Вроде всё симпатично, но вот оооочень не хватает массивов, структур, и массивов структур переменных.

Ведь зачастую в проектах SCADA довольно много однотипного оборудования, например, 10 вентустановок, 5 ДГУ, 20 счётчиков электроэнергии и т.п...
Все тэги для однотипных устройств одинаковые, все процедуры, алгоритмы.. одинаковые..
И очень удобно создать один раз структуру "Измеритель-х" в которую прописать нужные переменные-параметры.. Создать массив измерителей, и в коде просто обращаться по имени, индексу и полю...

Также при привязке тегов.. просто скопировал, поменял индекс и всё..
Спасибо!

Simple_Scada

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

Мы планируем добавить поддержку шаблонных объектов, функции импорта и экспорта объектов между проектами. Какой-то определенный срок появления таких возможностей сейчас назвать сложно. Возможно, данные функции будут добавлять поэтапно.

midnight1979

Поднимал небольшой вопрос в соседней ветке https://simple-scada.com/forum/index.php?topic=145.msg6750#msg6750
Собственно разработчики молодцы что реализовали web-клиент, но было бы наверное очень здорово чтобы на базе появившегося web-сервера появился бы и какой нибудь API.
Чтобы можно было взаимодействовать со скадой из вне. Это расширило бы интеграционные возможности продукта в разы!