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

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

TeNQ

А что если сделать проще? Добавить процедуру выдающую ID группы по номеру ее позиции.
Почему я думаю, что это будет востребовано. Допустим у вас есть 1000 групп сообщений и задача добавить во все группы сообщение формирующееся по факту. Создавать отдельный список внутренних переменных в кол-ве 1000 шт? А имея возможность получить ID по номеру позиции - один цикл и готово.

Victor_P.

Цитата: TeNQ от 13 июля 2018, 17:22:18...Добавить процедуру выдающую ID группы по номеру ее позиции...
Тогда уж лучше по названию.
ИМХО, номер позиции вообще ни очем.

Simple-Scada

Все таки использовать номер позиции для поиска группы это нестандартно, не очень надёжно при изменении позиций и ненаглядно в коде скрипта. Здесь же возникает вопрос где искать по позиции, ведь группы могут быть вложенными в другую группу, а если сделать поиск по позиции в корневой группе, то такой функцией не получиться воспользоваться в других группах. Поэтому сейчас также рассматриваем возможность внедрения поиска по имени, хотя и этот вариант не идеален, ведь при именовании групп сообщений допускаются одинаковые имена, но это редкость. Поиск по имени не ограничивал бы перенос групп, также его можно было бы вести по всем группам сразу (в том числе вложенным). Либо другой вариант - сделать группы отдельными открытыми объектами со своими функциями поиска подгрупп.

Серега

Добрый день!
Решил поделиться свои наблюдениями.
Предложение№1. Добавить свойство кнопки "Расположение иконки". Состояния: слева от текста, справа от текста, вместо текста
Предложение№2. Если объекты одинаковые (поле, круг и т.д.) и выделены только они можно менять их ширину, высоту.
Предложение№3. В меню создания окон добавьте функцию создания хотя бы 2 уровня групп, например как в трендах.
Предложение№4. Разработайте функцию архивирования проекта и все, что в него входит картинки, логи, звуки. Но это предложение возникло месяца 2 назад. И на форуме читал вроде Вы над этим уже работаете. Если моно просто потвержите да/нет.
Предложение№5. При удалении тренда из группы довольно часто вылетает проект с ошибкой записи в память для чтения.
Предложение№6. Элемент "Окно сообщений" сделать для отдельных групп когда они сформированы, например есть группа №1 и №2 в окне №1 отображается группа №1, а в  окне 2 группа №2
Вопрос №1. Свойства кнопки перепутаны надписи?
Вопрос №2. В хелпе в описании команды SetBit написан тип int64, в эдиторе описание longint (хотя logint = int64). Наверное это опечатка?

Simple-Scada

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

ЦитироватьПредложение№4. Разработайте функцию архивирования проекта и все, что в него входит картинки, логи, звуки. Но это предложение возникло месяца 2 назад. И на форуме читал вроде Вы над этим уже работаете. Если моно просто потвержите да/нет.
Начиная с версии 2.2.9.0 во время установки Simple-Scada пользователь задаёт два пути: для системных файлов (обычно "C:\Program Files\") и для пользовательских (обычно папка "Мои документы"). После установки на рабочем столе создается ярлык указывающий на папку пользовательских файлов. В этой папке хранятся все несистемные файлы скады: проекты, отчеты, пользовательские изображения/звуки/файлы импорта переменных и т.д. Для создания резервной копии достаточно просто скопировать (или архивировать) всё содержимое этой папки.

ЦитироватьПредложение№5. При удалении тренда из группы довольно часто вылетает проект с ошибкой записи в память для чтения.
Удалось повторить вылет редактора при удалении группы трендов. Исправили. В ближайшем обновлении ошибки не будет.

ЦитироватьВопрос №1. Свойства кнопки перепутаны надписи?
Нет. Первое состояние называется "Отпущена" и после запуска проекта кнопка находится в этом состоянии. При нажатии на кнопку выполняется переход ко второму состоянию "Нажата" и т.д.

ЦитироватьВопрос №2. В хелпе в описании команды SetBit написан тип int64, в эдиторе описание longint (хотя logint = int64). Наверное это опечатка?
Спасибо. Исправим. Используется тип int64.

Остальные вопросы учтём и по возможности будет реализовывать.

Серега

Добрый день!
Приятно помогать. Но одно уточнение.
ЦитироватьЦитировать

    Вопрос №1. Свойства кнопки перепутаны надписи?

Нет. Первое состояние называется "Отпущена" и после запуска проекта кнопка находится в этом состоянии. При нажатии на кнопку выполняется переход ко второму состоянию "Нажата" и т.д.

Кнопка без фиксации:

Editor:
TM_Button > Состояние "Отпущена" > Значение = 1
TM_Button > Состояние "Нажата" > Значение = 0

В режиме исполнения:
Нажимаем кнопку > Переменная принимает значение = 1
Отпускаем кнопку > Переменная принимает значение = 0

Почему?

Simple-Scada

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

Если навести мышь на свойство "Значение" появится подсказка: "Значение которое будет присвоено переменной". Так и происходит. Вы запустили программу, кнопка находится в состоянии "Отпущена". Когда Вы кликнете кнопку в этом состоянии в переменную будет присвоено значение 1 и она перейдёт в состояние "Нажата". Когда Вы кликните кнопку в состоянии "Нажата" в переменную присвоится значение 0 и она перейдёт в состояние Отпущена. Если необходимо, Вы можете через свойство "Имя" изменить описание состояний как угодно.

TeNQ

#907
Здравствуйте.
Можно ли переделать процесс копирования переменной в редакторе переменных? Каждый раз, если  долго не пользуюсь редактором скады, я ищу иконку скопировать или пробую нажать Ctrl + c и только потом вспоминаю, что нужно зайти в Изменить переменную и только там есть кнопка Дублирование. К этому можно привыкнуть и при длительном использовании не замечать, но все равно это нестандартная процедура.

Поиск по скрипту. Можно ли сделать так, чтобы нажатие на стрелку вниз/вверх автоматически подтверждало уже введенное ключевое слово, без необходимости выделять каждый раз поле ввода при смене скрипта и начинало поиск?

Вопрос. Мелочь, но все же. В русской раскладке нажимая Shift + "3", должен выйти символ №. В редакторе же почему-то выводится пробел.

Simple-Scada

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

Добавим все описанные функции.

Дмитрий_021

#909
Добрый день. OPC считывает слово  (Word) - оно используется как битовая маска состояния насосов. Как можно вытащить отдельный бит во внутренний тэг формата  BOOL или побитно обратиться к переменной?

asutpvit

Цитата: Дмитрий_021 от 16 августа 2018, 12:03:33Добрый день. OPC считывает слово  (Word) - оно используется как битовая маска состояния насосов. Как можно вытащить отдельный бит во внутренний тэг формата  BOOL или побитно обратиться к переменной?
вроде и сами понимаете что нужно делать), однако вариант быть может проще -
а в opc разложить на теги отдельные биты не рассматривали вариант 8)?

AndreiKov

Цитата: Дмитрий_021 от 16 августа 2018, 12:03:33Добрый день. OPC считывает слово  (Word) - оно используется как битовая маска состояния насосов. Как можно вытащить отдельный бит во внутренний тэг формата  BOOL или побитно обратиться к переменной?
С помощью функции GetBit.

Igor Sivakov

Будет ли в ближайших обновлениях добавлена функция экспорта/импорта событий в csv? Так было бы куда удобнее редактировать большое количество однотипных событий.

Simple-Scada

#913
Цитата: Igor Sivakov от 16 августа 2018, 15:33:14Будет ли в ближайших обновлениях добавлена функция экспорта/импорта событий в csv? Так было бы куда удобнее редактировать большое количество однотипных событий.
Импорт/экспорт объектов, мнемосхем, скриптов, сообщений и трендов это одна из популярных задача. Но сначала добавим просмотр архивных трендов в web, т.к. это более популярная задача. Затем начнем реализацию импорта/экспорта.

Цитата: Дмитрий_021 от 16 августа 2018, 12:03:33OPC считывает слово  (Word) - оно используется как битовая маска состояния насосов. Как можно вытащить отдельный бит во внутренний тэг формата  BOOL или побитно обратиться к переменной?
Например:
Код: pascal
begin
  // извлекаем первый бит из myWordVar
  myBoolVar.Value := GetBit(myWordVar.Value, 0);
end.

Victor_P.

Есть предложение в коммерческой версии скады добавить возможность ограничивать рабочий период для клиента.
Смысл какой: иногда (не часто но бывает) заказчик не спешит проплачивать счет после запуска системы управления.
Чтоб его стимулировать к этому предлагаю в редакторе или в настройках сервера добавить пункт типа "включить триальный период".
При активации этого пункта генерируется какой-то код типа C43AF9C55F9449E00ADF1BCA1F87A0341B02E98D (или что-то подобное) для разблокировки (отключения)
этого ограничения в клиенте.
В настройках этого пункта сделать поля для ввода количества дней триального периода (или конечной даты)
и для ввода количества дней, за сколько до конца триального периода при запуске клиента будет появляться сообщение вида "Через Х дней система будет заблокирована".
Также можно сделать выбор как именно блокировать,- разрешить только просмотр или вообще закрывать клиента.
В клиенте соответственно при наступлении такого события выводить окно с сообщением о невозможности работы через Х дней и полем для ввода кода разблокировки.
Желательно счетчик дней сделать так, чтоб при смене системной даты или при переустановке скады он не обнулялся (заныкать где-то в реестре и зашифровать).