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

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

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

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


Сообщения - Серега

Страницы: [1] 2 3 ... 14
1
Еще раз здравствуйте!
Отлично.
Тогда еще вопрос.
Берем создаем окно. Заголовок окна, шрифт 15 средний.
Добавляем примитивы. Кратность 8 - класс. Рисунок 1.
Меняем шрифт (неважно уменьшаем или увеличиваем). Рисунок 2. Как бы все поплыло согласно концепции кратности 8.
Считал что размер (в частности высота) заголовка меняться не будет. И заметил это совсем не давно. Хотя окон море.
Можете пояснить это фича и меняться не будет. Или можно что то поправить например добавить параметр высота заголовка (кратность 8 ), а шрифт текста уже внутри объекта будет меняться.
Можете у себя проверить и пояснить.

 

2
Так
1. разрешение экрана      : 2560х1440 (рекомендованное)
2. масштабирование         : 200% (рекомендованное)
3. размер указателя мыши:  1, стандартный

3
Добрый день!
Заметил у себя на ноуте (на рабочем стационарном РС нет возможности сейчас проверить), что при отображении подсказки в клиенте в верхней левой части, если условно экран разделить на ровные части по вертикале и горизонтали, то указатель мышки закрывает часть подсказки. С учетом того, что в начале идет код устройства, есть некоторые проблемы с пониманием, что написано в подсказке. Можете у себя проверить? Может можно как то дать смещение подсказке.

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

5
Ваши вопросы / Re: Векторная Диаграмма
« : 02 Февраля 2024, 09:43:16 »
Добрый день!
С учетом того, что в скаде нельзя нарисовать наклонную линию, Вам возможно надо думать в следующем направлении:
1. Картинки стрелок с прозрачным фоном
2. Скрипты, поворачивающие картинку на рассчитываемый и отмасштабированный (для текущей мнемосхемы) угол
3. Скрипты на изменение ширины и высоты в зависимости от параметром и рассчитанного угла
Немного попотеть...
Или написать свою программку (С++ или питон) и запускать ее из скады через RunApplication (см. справку)

6
Ваши вопросы / Re: Проекты и клиенты
« : 30 Декабря 2023, 12:18:30 »
Добрый день!
За идею спасибо! Как то про бд совсем не подумал. Посмотрим.
Ну и в преддверии так сказать с Новым годом!
ну и шутка! Держись скоро Новый год! 2025! ;D
Всем здоровья, всяческих благ и развития!

7
Ваши вопросы / Проекты и клиенты
« : 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.
Если у кого есть идеи, как можно получить инфу о том какие клиенты отображают конкретный проект... жду предложений.
Ну и совсем из ряда фантастики. На клиенте из запущенного проекта можно перейти в другой проект, не выходя из него и не заходя повторно в меню?
Жду вопросов и предложений!


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

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

10
Забыл еще для флажка нюанс один.
Не совсем понятно как цвет флажка формируется. То есть на фоне кнопки тот же цвет смотреться как темнее.
Возможно чисто мое субъективное мнение.

11
В дополнение.
Концепция:
1. Нажали на кнопку. 2 состояния для отображения чтобы диспетчер понимал, что он нажал на кнопку (см. рис. ButtonCmd и ButtonCmdOn).
2. Флажок. 2 состояния, чтобы диспетчер понимал, что система приняла команду (см. рис. ButtonSystemAccepredCmd).
3. Изменение фона кнопки, чтобы диспетчер понял, что команда выполнена (см. рис. ButtonSystemExecutedCmd).
Так скрипты.
Для кнопки для OnDataChangeEx (в Тег указываем нужный бит для доп. переменной):
Код: (delphi)
begin
if Sender is TM_Button then
  with Sender as TM_Button do
    begin
    if (GetBit(VariableEx.AsInt, Tag) = TRUE) AND (ActiveState = 0) then
    begin
      States[0].Color       := RGB(0,72,24);
      States[0].BorderColor := RGB(32,160,60);
      States[0].FontColor   := RGB(64,200,120);
    end;

    if (GetBit(VariableEx.AsInt, Tag) = FALSE) AND (ActiveState = 0) then
    begin
      States[0].Color       := RGB(0,48,48);
      States[0].BorderColor := RGB(16,120,120);
      States[0].FontColor   := RGB(32,240,234);
    end;
    end;
end.

для флажка для OnDataChange:
Код: (delphi)
begin
if Sender is TM_CheckBox then
  with Sender as TM_CheckBox do
    begin
    if GetBit(Variable.AsInt, BitNumber) then
    begin
      Color := RGB(32,160,60);
      Alpha := 255;
    end
    else
    begin
      Color := RGB(16,120,120);
      Alpha := 128;
    end;
    end;
end.

Пару вопросов к разработчикам.
1. Решение будет работать больше чем на одном клиенте? А то в некоторых темах такое упоминается.
2. Флажок можно как то сделать по центру, а то минимум можно только геометрию сделать ш40хв32 для красивости?
3. Для кнопки можно сделать смещения текста надписи влево\по центру\вправо - да\нет в ответе достаточно.

Жду ответов и предложений.

12
Как говориться работа проделана огромная результат на лицо.  ;D
Возможно кому то понадобиться.
Универсальный скрипт:
Код: (delphi)
begin
if Sender is TM_Button then
  with Sender as TM_Button do
    begin
    if (VariableEx.AsBool = TRUE) AND (ActiveState = 0) then
      States[0].Color := $008000;

    if (VariableEx.AsBool = FALSE) AND (ActiveState = 0) then
      States[0].Color := $003030;
    end;
end.

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


14
Добрый день!
Вопрос касается нагрузки на сервер скады.
То есть у нас например есть 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 вызовов одного и того же скрипта.
Как бы и то и то работает. Но вообще хотелось бы понимать как это работает.
Может быть в руководстве создать какую то таблицу весов "тяжести" скриптов или что то на подобии.
Жду ответов и вопросов.

15
Ок. Писал ответ, но Вы быстрее ответили!
Ждем.

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