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

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

TeNQ

Цитата: Simple-Scada от 09 марта 2016, 20:36:27TeNQ, в Simple-Scada не будет ограничения на количество виртуальных переменных и мы отключим это ограничение в следующем обновлении.
Спасибо :D
Раз уж начался аттракцион неслыханной щедрости... А структуры данных будут? А это вроде был такой вопрос, но я поискал бегло и не нашел - динамическое создание переменных? Я сейчас голову ломаю над созданием отчетов и там это очень бы пригодилось.

Simple-Scada

#211
На самом деле структуры и динамическое создание переменных есть и сейчас и было с самого начала. Другое дело - невозможность нормального использования. Когда Вы пишите код вроде этого:

Код: pascal
type 
  TMyScructure = record
    A, B, C: Integer;
  end;
var
  I: Integer;
  S: String;
  MyStructure: TMyScructure;
begin
  // ...
end;

...то Вы уже динамически создаете переменные I и S и структуру MyStructure, а при желании можно динамически создать не только переменные, но и объекты, например изображения, фигуры и прочее. И Вы можете работать с этими переменными, объектами и структурами как угодно. Но есть один важный момент. Все они будут локальными, т.е. память им будет выделена в момент начала выполнения скрипта и после завершения скрипта они будут удалены (т.е. память под них будет освобождена). В результате использовать их в пределах одного скрипта это хорошо и такое использование сейчас допустимо. Но для того, чтобы можно было обращаться к ним из разных скриптов - они должны быть глобальными. Такими сейчас являются внутренние (виртуальные) переменные. Создавая новую внутреннюю переменную в Редакторе Вы "заставляете" сервер выделить для неё место в памяти и хранить её значение все время, пока проект не будет остановлен. Это позволяет обращаться к ней из разных скриптов и делает её "глобальной".

В будущем можно добавить модульность в скрипты, чтобы в одном модуле можно было описать структуру, или объект, а в скриптах просто подключать модуль и использовать структуру не объявляя её снова. Но и это не даст чего-то сверхъестественного, как здесь уже писали на форуме про запись структуры в файл и чтение её из файла. Каждому пользователю будут нужны свои структуры, поэтому нельзя будет написать MyStructure.SaveToFile или MyStructure.LoadFromFile, чтобы сохранить или загрузить структуру в файл. Пользователю сначала придется описать методы SaveToFile и LoadFromFile теми же процедурами и функциями FileWrite.../FileRead..., как это делается сейчас. Но, это позволит написать их единожды, а затем использовать в любом скрипте.

Поэтому в будущем появится модульность и можно будет нормально работать с структурами (теми же методами, что и сейчас, но не дублируя код). Но будет это после выхода финальной версии.

Al_Kuz

ЦитироватьAl_Kuz, опишите подробно какую именно задачу нужно решить? Вы хотите, чтобы по нажатию кнопки "Подтвердить" сбрасывалась блокировка того объекта, который связан со сбрасываемым сообщением? К примеру активно сейчас сообщение "Авария агрегата 1". Пользователь нажмет "Подтвердить" и в этот момент произойдет сброс блокировки для "Агрегата 1"? Такая задача у Вас?

Привязка к конкретному агрегату/узлу не нужна, достаточно чтобы к кнопке "Подтвердить" была привязана переменная типа boolean, значением которой управляла бы эта кнопка. Ну и до кучи вызывалось бы событие OnDataChange. И еще, если неисправность не устранена, т.е. блокировка неисправности в контроллере не сброшена, то сообщение о неисправности в списке не подтвержденных не должно исчезать при нажатии "Подтвердить".

Simple-Scada

#213
TeNQ, в C# тип "Integer" записывается как "int" и объявление:
Код: pascal
{
  int i1 = 3;
}

эквивалентно этому в Pascal'е:
Код: pascal
var
  I: Integer;
begin
  I := 3;
end;

Т.е. здесь мы говорим об одном и том же. Вся разница в том, что в C нет раздела объявления переменных и их можно объявлять в любом месте в теле процедур и функций. Это сомнительный плюс, который иногда приводит к неудобочитаемому коду.

ЦитироватьЯ это должен сейчас объявить заранее с запасом. И там был такой оператор new. И я мог в теле программы объявить переменную и соответственно выделить ей память.
А здесь Вы говорите уже про объекты. New используется обычно для создания объектов. Если раньше Вы писали "MyClass my = new MyClass()", то здесь Вы должны написать "my := MyClass.Create();". Но, как видите, мы не даем пользователям таких примеров, т.к. на то есть множество причин. Мы пока не открыли доступ пользователям к классам компонентов. В будущем придем к этому и покажем примеры создания объектов через код.

TeNQ

#214
В С# и переменная типа Int имхо является объектом класса System.Int32. Там практически все является объектами. А впрочем это все неважно. А не System.Int32 это не класс, а структура согласно MSDN. Короче, я все забыл и больше выпендриваться не буду.
Просьба - можно ли сделать отключаемым звук аварии/сообщения? Потому, что долго его не вынести, а устранить аварию сразу может быть и не удастся. Т.е. сделать функцию Mute/отключение звука?

Simple-Scada

#215
Да верно, в нём ведь можно писать "int i = new int();" вместо "int i = 0;". Но вышеописанного это не отменяет.

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

arbazh

Скажите пожалуйста, возможна ли отправка e-mail сообщений через SMTP при помощи скриптов из Simple-Scada2 по изменению значения тега и предвидится ли данный функционал в будущем?

a_sergeevich

Могли бы вы добавить такой элемент как checkbox, очень удобно было бы делать выбор каких-то параметров из списка.

Simple_Scada

ЦитироватьСкажите пожалуйста, возможна ли отправка e-mail сообщений через SMTP при помощи скриптов из Simple-Scada2 по изменению значения тега и предвидится ли данный функционал в будущем?

Сейчас такой возможности нет. После выхода Simple-Scada 2 начнем добавлять новые функции, в том числе и описанную Вами.

ЦитироватьМогли бы вы добавить такой элемент как checkbox, очень удобно было бы делать выбор каких-то параметров из списка.
Эту просьбу уже неоднократно озвучивали. CheckBox, ComboBox ,будут добавлены после выхода Simple-Scada 2.

Coyote

Хочется увидеть возможность построения графиков по нескольким точкам, где координаты могут задаваться как в виде констант, так и тегов.
Например: вывести кривую температуры печи по участкам (http://sibac.info/sites/default/files/files/2014_03_05_NaturMath/2.3_Korolkov.files/image001.png) с подписными координатами точек (1 или 2мя)
Так же хочется автоматическое создание файла отчёта (файл раз в час/сутки/неделя) со снятыми показаниями заданных тегов (считывания тегов раз в минуту/10 минут/час/сутки).

lopezmil

Веб-клиент. Позволит запускать SCADA-систему в режиме клиента для удаленного доступа, как в локальной сети, так и через интернет.. Скажите, известны сроки появления этой функции в вашей скаде? С таким нетерпением жду её :P. И, думаю, не я один такой ))

Simple-Scada

#221
Цитата: Coyote от 18 марта 2016, 11:50:51Хочется увидеть возможность построения графиков по нескольким точкам
После официального выхода Simple-Scada 2 постараемся добавить такой компонент.

ЦитироватьВеб-клиент. Позволит запускать SCADA-систему в режиме клиента для удаленного доступа
Такая возможность есть и сейчас. Только это не полноценный веб-клиент встроенный в браузер, а обычное клиентское приложение. Сейчас Вы можете просто ввести IP-адрес нужного компьютера на котором установлен Simple-Scada Server и подключиться к нему клиентом Simple-Scada по локальной сети, или через интернет.

garry

А вместо IP адреса можно вписать доменное имя? У меня динамический IP.

deldemo

Здравствуйте. Уважаемые, а можно ли добавить в меню "кнопки" ,где цвет границы, некую галочку "цвет границы как  основной"(ну или что то типа того).

Simple-Scada

deldemo, можем сделать, чтобы когда цвет границы не выбран брался бы основной цвет.

ЦитироватьА вместо IP адреса можно вписать доменное имя? У меня динамический IP.
Нет, подойдет только IP-адрес.