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

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

Simple-Scada

Цитата: Виктор К от 20 мая 2022, 12:12:03Добрый день. При массовом изменении переменных, не применяются параметры фильтра. Версия 2.6.0
При массовом редактировании меняются только те свойства, которые были изменены после открытия окна редактирования (они подчеркиваются желтой полосой снизу, см. скрин). Остальные свойства не затрагиваются. После выбора фильтра задайте новые значения в полях, чтобы они изменились.

Виктор К

Проверка изменения происходит при выходе из поля. Соответственно если хотим отставить значения по умолчанию: нужно написать другое значение->покинуть поле ввода-> вернуться обратно в поле-> ввести значение которое стояло по умолчанию.

Sofrinec

#1487
Доброго времени суток. Создаю свой первый проект на Simple-Scada. Столкнулся с таким моментом. Я думаю было бы очень удобно иметь возможность вложенных шаблонов. Например у меня 4 почти одинаковых автоматических линии. В каждой линии есть по 2 одинаковых установки. Я бы сделал шаблон установки, а затем шаблон линии. В шаблон линии добавил бы два экземпляра шаблона установки (далее Device). Затем в проете , когда я добавляю шаблон линии, он бы у меня спрашивал например номер линии, номер устройства для 1 шаблона установки и номер установки для второго шаблона установки. И запись в переменных выглядела бы примерно так Line%НомерЛинии%_Device%Номер устройства%_frequencyTurbine. Сейчас же если я добавлю такой шаблон, то у меня появится только два поля для заполнения Номер линии и номер устройства. А номерация устройств получается не сквозная и работать не будет. Пробовал затестить, даже если все поля вбиты верно и переменная типа Line1_Device1_frequencyTurbine существует.  Добавил ее отображение и в шаблон устройства и в шаблон линии. В шаблоне устройства она при изменении не отображается, а в шаблоне линии отображается. Получается, что вложенные шаблоны не работают, а было бы удобно. Очень удобно.
Еще при добавлении шаблона в проект обьекты из шаблона и рамка размещения не совпадают в редакторе. На клиенте потом вроде нормально отображаются, но при компоновке очень не удобно.

Simple_Scada

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

ЦитироватьПолучается, что вложенные шаблоны не работают
Вложенные шаблоны работают. При использовании вложенных шаблонов, подстановки с одинаковым именем объединяются. Например: имеется пустой шаблон "А", а также шаблон "Б" с подстановкой "Ток насоса". Если в шаблон "А" два раза добавить шаблон "Б", то у шаблона "А" будет одна подстановка "Ток насоса", значение которой будет передано двум шаблонам "Б". Подробное описание работы "Шаблон + шаблонное окно"(что аналогично работе "шаблон + шаблон") можно посмотреть по ссылке.

ЦитироватьСейчас же если я добавлю такой шаблон, то у меня появится только два поля для заполнения Номер линии и номер устройства.
Все верно, т.к. подстановки с одинаковым именем объединятся. Вы же хотите, чтобы для каждого экземпляра вложенного шаблона можно было заполнять отдельные подстановки. В текущей версии реализовать такое не получится. Обсудим и подумаем, что можно сделать в этом направлении и возможно в одном из будущих обновлений такой функционал появится.

ЦитироватьЕще при добавлении шаблона в проект обьекты из шаблона и рамка размещения не совпадают в редакторе. На клиенте потом вроде нормально отображаются, но при компоновке очень не удобно.
Данная ошибка исправлена в версии 2.6.1.0. Если используется более старая версия, то обновитесь до актуальной версии. Если используется версия 2.6.1.0, то скачайте и установите её повторно.

Eugene_

Здравствуйте!
Подскажите, для справки, что значат эти параметры в логах ? Interval, LifeTime, KeepAlive, Count ?

Simple-Scada

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

Это параметры подписки, подробно описаны в спецификации OPC-UA по ссылке. Краткое описание ниже:
  • Interval (он же PublishingInterval) - определяет, как часто UA-сервер отправляет уведомления по этой подписке;
  • LifeTime - определяет, сколько раз может истечь PublishingInterval без отправки данных или сообщений KeepAlive, прежде чем сервер удалит подписку. Чем больше значение, тем дольше подписка будет жить при разрыве связи;
  • KeepAlive (он же MaxKeepAliveCount) - если нет данных для отправки UA-сервер отправит пустое сообщение KeepAlive через PublishingInterval * MaxKeepAliveCount. Используется для поддержания активности подписки когда нет данных для отправки;
  • Count - количество переменных, добавленных в подписку.

Eugene_

#1491
Спасибо за ссылку! прочитал, более менее ясно. параметр LifeTime  (в мс) определяется параметром "долгий/короткий" временем жизни подписки, из выпадающего списка в редакторе настроек ОРС сервера в проекте, верно ?

Simple-Scada

Да, опция "Срок действия подписок" влияет на параметры LifeTime и KeepAlive. А Interval определяется частотой опроса переменных. Нужно также учитывать, что UA-сервер может переопределить эти параметры по своему усмотрению.

Eugene_

Пожелание  обратить внимание на кнопку tab (а может и ошибка) - при нажатии кнопки "tab" после ввода имени пользователя в настройках ОРС сервера курсор делает пробел (часто не заметный), а не переходит на следующее поле ввода пароля. Хотелось бы чтобы как обычно, tab перебирал доступные элементы в окне. Версия 2.6.1.0

Botsmall

#1494
Добрый день.
Вопрос.
По ряду обстоятельств в OPC сервере переменная int, хранится в формате string [0.######]. Изменить этот формат нельзя.
В SS есть поле, которая взаимодействует с этой переменной (чтение/запись).
Проблема в том, что как я бы не объявлял эту переменную в SS (string, int, single и т.д; менял формат в свойствах переменной) на входе я имел [0.######].
Все бы ничего, но пользователь в итоге, в редактируемом поле SS видит число, допустим, 35.00000, а должен просто 35.
Помогите разобраться.

Виктор К

Добрый день. Версия 2.6.1.0 (22-05-2022).
Шаблон. При повороте изображения, не правильно рассчитываются предельные границы для перемещения. Повернутое изображение на скрине находится в максимально верхнем положении. Эта проблема была и в предыдущих версиях.

Simple-Scada

Цитата: Eugene_ от 28 июня 2022, 11:28:52Пожелание  обратить внимание на кнопку tab (а может и ошибка) - при нажатии кнопки "tab" после ввода имени пользователя в настройках ОРС сервера курсор делает пробел (часто не заметный)
Цитата: Виктор К от 29 июня 2022, 07:03:19При повороте изображения, не правильно рассчитываются предельные границы для перемещения.
Добавим исправления в одно из ближайших обновлений.


Цитата: Botsmall от 29 июня 2022, 05:52:02По ряду обстоятельств в OPC сервере переменная int, хранится в формате string [0.######]. Изменить этот формат нельзя.
Если переменная передаётся в скаду как строка, то тип данных выбранный в скаде смысла не имеет, она в любом случае будет отображаться как строка. Формат тоже не повлияет на неё, ведь формат используется для чисел, а не для строк.
Если Вы хотите работать со строкой как с числом, то придётся делать дополнительную конвертацию. Например, создать отдельную переменную типа Single с именем "vrSingle". Затем по событию OnDataChange строковой переменной копировать в неё значение переведённое в число, например:
Код: pascal
begin
  vrSingle.Value := StrToFloatDef(vrStr.AsStr, 0);
end;
, где vrStr - это строковая переменная.
Теперь значение строковой переменной будет в виде числа копироваться в vrSingle.

Виктор К

Еще пожелание. У TM_Calendar реализовать свойство "подтверждение", аналогичное как у TM_Field.

Simple-Scada

Рассмотрим для добавления в будущие обновления.

AlexejKa38

Здравствуйте. Спасибо за отличную программу.

Необходимо в отчете суммировать последние значения колонок данных одного источника. Оператор перед построением будет выбирать значения каких колонок будут включены в отчет и суммироваться.

Если бы в итог включались всегда одни и те же значения, то можно просто написать выражение: {Источник1.Переменная1_Последнее + Источник1.Переменная2_Последнее + Источник1.Переменная2_Последнее}.  Задачу наверное можно решить с помощью функции IIF, но выражение такого вида выдает ошибку: {IFF(Переменная1_Включить_в_Отчет, Источник1.Переменная1_Последнее, 0)+(Переменная1_Включить_в_Отчет, Источник1.Переменная1_Последнее, 0)}. Вопрос как сложить значения двух функций IFF? Выражение с одной функцией IFF работает. Прикладываю проект как это примерно должно выглядеть.

Еще вопрос почему для Источника_1 с интервалом 0 и Источника_2 с интервалом 10 секунд за один и тот же промежуток времени выдаются разные первые и последние значения одних и тех же переменных. А выражение {Источник2.Время.AddSeconds(-Источник2_Интервал)} влияет только на отображение времени. Получается, что перед генерацией отчета надо из Начала и Конца периода вычитать число секунд Интервала.