Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - Серега

Страницы: [1] 2 3 ... 7
1
Добрый день!
В чем вопрос. На ПНР напарник скидывает ряд слов (тип word).
Можно ли в скаде "забить" заранее нужное количество сообщений, привязать к соответствующим словам и их настроить, но не расписывать в сообщениях состояния. То есть даже удалить те пустые, которые появляются при создании. Их настройка и проверка как бы следующий этап.
Как система будет их воспринимать? Будет ли дополнительная нагрузка на железо, если например так сделать 100 слов? Или 1000.
Тестовый проект показал что как бы можно. Но может есть нюансы.
Просто для понимания.

2
Ваши вопросы / Проекты и клиенты
« : 28 Декабря 2023, 11:18:45 »
Добрый день!
Может кто подскажет.
Есть сервер. Есть 2 арма.
1ый этап проекта подразумевал один проект,  работу обоих клиентов на линии 1. Функция GetClientsCount легко решает вопрос о количестве клиентов.
2 - отлично работаем.
1 - работаем, но с ограничениями.
0 - полный останов.
2ой этап подразумевает появление отдельного проекта на линию 2. При этом под него выделяется конкретный арм. Запускаться будет периодически. Так решено не мной, изменить нельзя.
Сервер по функции GetClientsCount видит те же клиенты. Но не видит какие проекты где запущены.
И вот основной вопрос можно ли как то узнать что конкретный проект запущен и какие клиенты отображают данный проект.
Возникла идея воспользоваться командой GetProjectPath, которая работает отлично.
Далее получаем как бы 2 результата, которые будут отличаться окончаниями типа "D:\Simple-Scada 2\Projects\Line1\" и "D:\Simple-Scada 2\Projects\Line2\". Но это просто где лежат проекты.
Но тут возникла проблема с функцией Pos. Скопировал из руководства пример в скрипт универсальный, OnClick и выдает ошибку "Class "TM_Variable" does not have a default property, в строке ...". Можете у себя проверить. Не могу понять что ему не нравиться.
В принципе как бы можно собрать косвенно разные статы:
1. пинг = физическая связь
2. имя клиента сделать уникальным
3. знать какие проекты на сервере
В общем эта тема как бы продолжение этой https://simple-scada.com/forum/index.php?topic=976.msg9143#msg9143.
Если у кого есть идеи, как можно получить инфу о том какие клиенты отображают конкретный проект... жду предложений.
Ну и совсем из ряда фантастики. На клиенте из запущенного проекта можно перейти в другой проект, не выходя из него и не заходя повторно в меню?
Жду вопросов и предложений!


3
Ваши вопросы / Переменные и типы данных
« : 10 Декабря 2023, 09:41:57 »
Добрый день!
В описании на скаду написано:
"...Особенно важно указывать правильные типы данных в очень больших проектах, так как это существенно скажется на быстродействии...".
В конфигурации ОРС Инсат есть настройка "Тип данных в сервере" и там можно выбрать только uint32 (в скаде = long word).
Вопрос. Если переменным в скаде присвоить тип word, при типе данных в ОРС uint32, что-нибудь может произойти нежелательное? Или просто будет обрезаться значение переменной до типа word.
Жду ответа и предложений!

4
Добрый день!
При импорте переменных из OPC UA создаются новые переменные в скаде.
Рассматривается ли функция обновления существующих переменных в скаде при импорте из OPC UA, например в части адреса и\или описания, если имя переменной не менялось и полностью совпадает с именем в ОРС?
Например, как с Alt или Shift, но через Ctrl или их любое сочетание.
Жду вопрос и предложений.

5
Добрый день!
Есть кнопка с 2 положениями и привязана к соответствующей переменной.
В свойстве "доп. переменная" прописана переменная, которая отвечает за обратную связь, типа команда прошла.
В настройках кнопки мы можем настроить цвета для фона, границы и текста, которые будут меняться в зависимости от значения основной переменной.
Скриптом через Button1.States[0].Color можно организовать нужные цвета в соответствующих состояниях.
И данный скрипт повесить на OnDataChangeEx ...
В общем у меня не получается добиться нужного мне результата.
Можете сказать как правильно это сделать?
И можно ли так делать?


6
Добрый день!
Вопрос касается нагрузки на сервер скады.
То есть у нас например есть 100 word-ов.
Что будет менее затратным:
1. Сделать много внутренних булевских переменных в одном скрипте "изменились переменные"
Например:
Код: (delphi)
xSystemOff_iGet.Value := GetBit(wWordState_Get.AsInt64 ,0);
и т.д.
и в дальнейшем использовать эти переменные.
Конечно надо понимать, что возможно потребуется дополнительно использовать еще какие то скрипты, что так же вызовет рост нагрузки на сервер.
2. Или привязать в геометрическом примитиве (кроме кнопок и флажков, которые напрямую могут работать с битами) к переменной wWordState_Get.
Далее указать в свойстве Tag нужный бит (например 0) и на событие OnDataChange повесить например такой скрипт:
Код: (delphi)
var
  xState:boolean;
begin
if Sender is TM_Shape then
  with Sender as TM_Shape do
    begin
    xState := GetBit(AsInt64 , Tag);
    if xState then
      Color := $074611
    else
      Color := $242424;
    end
end.
И естественно таких примитивов будет 100 word * 16 bit = 1600 вызовов одного и того же скрипта.
Как бы и то и то работает. Но вообще хотелось бы понимать как это работает.
Может быть в руководстве создать какую то таблицу весов "тяжести" скриптов или что то на подобии.
Жду ответов и вопросов.

7
Добрый день!
Процесс формирования отчета не менялся.
1. Формируем отчет:
Код
aReport := ReportBuild('MotoRunHour');
2. Формируем имя отчета:
Код
NameFileForSend := 'MotoRunHour_'+ DateTimeToFileName(Now, '');
3. На всякий случай сохраняем его на сервере:
Код
aReport.Save(SS_SERVER_NAME, NameFileForSend, 'C:\GeneratedReports\', rfPDF);
4. Отправляем по почте:
Код
aMail := SendMail('Simple-Scada', 'Mail с отчетом', 'Отчет во вложении', 'user1@mail.com, user2@mail.com'); 
aMail.AttachReport(aReport, NameFileForSend);
И вот после обновления по почте присылается файл, но без расширения pdf.
Раньше:
MotoRunHour_01.10.2023 00.00.00 (542).pdf
Теперь:
MotoRunHour_01.10.2023 00.00.00 (542).00 (542.00 (542
Можете проверить у себя?

Дополнительно хотел бы уточнить следующее:
1. В скобках указываются миллисекунды?
2. Для удаления их из названия нужно перед началом изменить формат времени (SetTimeFormat('hh:nn:ss'); ), а в конце при необходимости вернуть обратно той же командой (SetTimeFormat('hh:nn:ss:zzz'); )?

Жду вопросов и ответов!

8
Ваши вопросы / Изображения и клиенты
« : 31 Августа 2023, 17:27:53 »
Добрый день!
Не могу разобраться в ситуации, что ни так.
Есть сервер. Проект. Папка Pictures и в ней картинки для проекта. Не анимация.
В редакторе картинки видны. В клиенте запущенном на сервере картинки видны. Сервер установлен как служба.
Заходим на другом клиенте (физически другой арм, по сети подключенный, установлен только клиент) и картинок нет.
И тут пару вопросов.
1. По идее картинки надо скопировать на клиента. Правильно? Или они по сети при подключении скачиваются? (Вроде где-то это уже обсуждалось, но не уверен и не смог найти тему на форуме, или это в руководстве было, хз)
2. Если да, то куда?
3. Если в папке Pictures было изменено имя файла, в редакторе в старом объекте "Изображение" привязана новая картинка. Сохранение в редакторе  и перезапуск проекта достаточно что бы изменения вступили в силу? Или нужно перезапускать саму службу сервера?
Жду вопросов и предложений.

9
Ошибки / Фича или глюк...
« : 23 Июня 2023, 13:01:58 »
Добрый день!
Обратил внимание на 2 вещи.
1. При выделении объектов в редакторе иногда проскакивает подъем или сужение по высоте строк меню свойства. Проверьте у себя.
2. На рисунке (вложение) видно, что видимая часть линии по координатам не совпадает с координатами прямоугольника. Но как бы невидимая рамка объекта совпадает. Можете дать свои пояснения это фича или глюк?

10
Добрый день!
Архивация v2 имеет ряд преимуществ.
В проекте переход на данную версию запланирован. Но...
У нас с "боевой" базы делается репликация для инструмента Grafana.
В связи с отличиями в структуре таблиц возможно придеться переделать все запросы в Grafana.
Можете посоветовать какой то менее болезненный алгоритм перехода. Например может создать новую базу в проекте и т.д.
В общем любые мысли...
Жду вопросов и предложений.

11
Ваши вопросы / Текст и его свойства
« : 14 Апреля 2023, 14:09:23 »
Добрый день!
Заметил одну вещь.
Текст в кнопке как бы смещен вниз (на рисунке 1ый элемент текст, остальное кнопки).
Вопрос №1. Это фича или глюк?
Вопрос №2. В элементе текст сам текст можно выравнивать. В будущем рассматриваете такую возможность для кнопок?
Вопрос №3. Для элемента кнопка ширина границы не изменяемая? В будущем будет возможность ее менять?
Жду вопросов и предложений!

12
Ваши вопросы / Слои и все такое
« : 25 Июля 2022, 12:35:20 »
Добрый день!
Достался один проект. Разработчик предыдущий много что завел на слои. И сейчас понять где что довольно сложно.
В той или иной мере вопрос о слоях на форуме касался расположения нескольких объектов на одном слое.
Горячие клавиши позволяют менять слой с текущего на 1 и наоборот с 1 на текущий слой выделенного объекта при создании или с текущего на максимальный существующий + 1(правильно?).
Рассматриваете Вы возможность создания в будущем какого-нибудь инструмента по управлению слоями?
Например (как предложение) функция\кнопка в редакторе типа экспорта (csv или json и т.п.), где имя объекта = слой.
По имени можно найти объект. По слоям зарезервировать для нужд определенные участки. Естественно если это позволяет функционал редактора.
Допустим 15 объектов заняло 15 слоев. И скриптами можно например ряду объектов в зависимости от условий менять слой в диапазоне начиная от 30 и выше.
Жду ответов и вопросов.

13
Добрый день!
Вопрос в принципе прост.
Как в самом проекте, когда проект запущен, у объектов сменить надписи (текст, подписи и т.д.) допустим с английского на русский и наоборот, например по нажатию какой-то кнопки?
Встроенного решения в SimpleScada нет? В будущем?
Решения могут быть:
Вариант 1. Два больших универсальных скрипта со всеми объектами (один для русского, один для немецкого).
Вариант 2. Как то  через "справочник" в БД (типа стол = table = der tisch).
Вариант 3. Через файл.
Если есть другие предложения готов выслушать.
Жду ответов и вопросов.

14
Ваши вопросы / Шаблоны и все такое 2
« : 23 Июня 2022, 09:42:21 »
Добрый день!
Используем версию 2.6.1.0.
Есть набор переменных  var1, var2 и т.д.
Есть набор универсальных скриптов set_number_1, set_number_2 и т.д. (выполняют одно и то же действие, но для каждой своей переменной).
Есть набор универсальных скриптов fon_green, fon_red и т.д., заточенных на вызвавший их объект (например sender это текст) и изменение его свойств (например цвет текста и фон).
Есть шаблонное окно и элементы.
Привязка элементов (текст) и переменных через  $номер$ (var$номер$) все замечательно и работает.
Привязка универсальных скриптов fon_green в связке с var$номер$ то же работает.
Думал скрипты типа set_number_1 то же можно так сделать (set_number_$номер$). Но тест показал, что не могу.
Не нашел в руководстве можно ли в событии OnInit (учитывая наличие глобального модуля) в скрипте в зависимости от значения $номер$ вызывать соответствующий скрипт set_number_1.
Можете прокомментировать или дать направление.
Жду ответов и вопросов!

15
Ваши вопросы / Архивация v2. Переход
« : 10 Июня 2022, 15:16:11 »
Добрый день!
По привычке прежде чем вносить изменения на "боевой" системе, решил на тестовой проверить переход на архивацию версии 2. Версия ПО 2.6.1.0
Согласно инструкции в проекте
1. в настройках выбрал версию 2.
2. Таблицы не создались. Но через пункт "Создать..." все создалось
3. Проверил связь - связь есть в сервере
4. Настройки опроса и т.п. не трогаем, сохраняем проект.
5. Запускаем и ... связь есть. Но данные почему то не архивируются.
6. В настройках для базы данных выбираем "Очистить все таблицы". Но тут ... что-то не очищается.
Далее по разборке ситуации.
1. В элементе Поле при нажатии правой клавиши вижу что значение переменной скачет  0, затем 25, опять 0 и далее 26, 0 и 27 и т.д.
2. Данная переменная (допустим connect_1) изменяется в скрипте по изменению переменной generation, то есть
Код
connect_1.value := generation.value;
3. Сама generation формируется в односекундном тренде
Код
begin
 if generation .Value < 100 then
    generation .Value := generation .Value + 1
 else
    generation .Value := 0;
end.
4. connect_1 стоит на архивирование, но в архиве данных нет
5. Делаю новый 1сек-скрипт и переменную
Код
begin
test_int.Value := test_int.Value + 1;
if test_int.AsInt > 100 then test_int.Value := 0;
end.
и все работает. И архивирование и построение тренда.
6. Переделываю все на старый скрипт - опять все работает.
В общем получается как-то странно. То ли старые переменные не подхватываются, то ли старые скрипты.
Кроме таблиц самой скады, создали свои таблицы. Могут ли они помешать?
Может подскажите куда копать?
Жду вопросов и предложений!



Страницы: [1] 2 3 ... 7