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

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

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

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


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

Страницы: [1] 2 3 ... 18
1
Ваши вопросы / Re: Объект и все такое
« : 13 Ноября 2025, 17:03:10 »
В теме какой то читал про эту функцию. Ну теперь, после Ваше ответа, точно стоит изучить ее подробнее.
Спасибо!

2
Ваши вопросы / Объект и все такое
« : 10 Ноября 2025, 12:14:30 »
Добрый день!
Прилетела задачка. Как бы была страница (pVCU) и куча подстраниц. И выполнялась процедура из глобального модуля:
Код: (delphi)
procedure SelectRoutes(aNameSubPage, aNameTC:String; tblRoutes_U4XXXMXX_XXX:TM_Table);
var
  aQuery: string;
  aSubPage: TM_Subpage;
begin
  aSubPage := pVCU.FindSubpageByName(aNameSubPage);
  if aSubPage <> nil then
  begin
    aQuery := 'SELECT ... FROM ... WHERE TC=' ... ' + QuotedStr(aNameTC);
    tblRoutes_U4XXXMXX_XXX.RunSQL(aQuery, tsSaveFixRow);
  end else
    begin
      ShowMessageClient(GetClientName, 'Предупреждение!', 'Выберите ТС.');
      Exit;
    end;
end;
Теперь подстраницы стали каждая страницей, а страница как бы стала подстраницей у каждой страницы, как бы поменялись названия а функционал тот же.
Понятно что скрипт работать не будет, так как поменялись названия страниц. Эксперимент не удался, ругается на имя. И теперь вопрос.
Можно ли заменить в скрипте название страницы на подстановку для конкретной страницы, которую указываем в параметрах при вызове?
То есть вот эту строку:
Код: (delphi)
aSubPage := pVCU.FindSubpageByName(aNameSubPage);
заменить на эту строку:
Код: (delphi)
aSubPage := aNameSubPage.FindSubpageByName('pVCU');
Возможно так сделать не получиться. Не хотелось бы писать это на каждую подстраницу.
Можете как то прокомментировать?

3
Ваши вопросы / Re: Шаблоны и OnInit
« : 04 Ноября 2025, 16:34:12 »
Все. Понял. Спасибо!
Внимательнее надо быть.

4
Ваши вопросы / Шаблоны и OnInit
« : 04 Ноября 2025, 09:11:59 »
Добрый день!
В принципе вопрос касается темы
Поясню. Вот код универсального скрипта на OnInit шаблона:
Код: (delphi)
var
  bTC:TM_Button;
  txtText:TM_Text;
begin
  txtText := GetTemplateObject('Text8022') as TM_Text;
  txtText.Text := 'Test';
  bTC := GetTemplateObject('tmp_butTC') as TM_Button;
  bTC.States[0].Caption := 'TU4' + IntToStr((Sender as TM_Button).Tag);
end.
Изменения текста видны. Изменения для кнопки нет. Можете дать пояснения или может список элементов и их свойств которые можно использовать в OnInit?
Жду вопросов и предложений.

5
Просто возникла идея перевода текста для элемента "Текст" и подсказок для всех остальных элементов.
Можно создать файл, где в строке прописать что то на подобии:
ID;       текст на рус;текст на анг.;подсказка на рус;    подсказка на анг
Text1;  Старт;          Start;            Готовность к старту;Start ready
Field23;x;                x;                  Введите значение;   Enter value
А дальше (для сокращения кода) узнаем ID элемента и если он есть в списке меняем в зависимости от языка. Как бы хотелось в пару строк вложиться. Но пока работает только прямое присваивание.
Глобальный модуль:
Код: (delphi)
interface

procedure OpenFileLang(nameFile:string);

implementation

procedure OpenFileLang(nameFile:string);
begin
  TextFileOpen(nameFile, '', fomReset, fcpUTF8);
  //как бы прописываем все элементы у которых надо перевести подсказки и текст.
  Text1.Text := TextFileReadLn;
  Text1.Hint := TextFileReadLn;
  Text2.Text := TextFileReadLn;
  Text2.Hint := TextFileReadLn;
  TextFileClose;
end;

end.
Универсальный, но надо предварительно в строгом соответствии подготовить соответствующие файлы:
Код: (delphi)
begin
  if not FileExists('lang_ru.txt', '') then Exit;
  if not FileExists('lang_eng.txt', '') then Exit;
  if not FileExists('lang_X.txt', '') then Exit;

  if Sender is TM_Object then   // проверяем, что Sender это объект
    with Sender as TM_Object do // приводим Sender к типу "TM_Object"
    begin
      if bLangNumber.Value = 0 then
        OpenFileLang('lang_X.txt');

      if bLangNumber.Value = 1 then
        OpenFileLang('lang_ru.txt');

      if bLangNumber.Value = 2 then
        OpenFileLang('lang_eng.txt');
    end;
end.
В принципе это можно было бы провернуть и с сообщениями. Дополнительно обрабатывать каждое состояние. То что в базу будет писаться то русский то английский, ну так мы же язык меняли не просто так. Ну а так как менять текст сообщения нельзя, то как бы и все.
Да что то ручками надо было бы писать самому, но как бы что бы это был встроенный механизм самой скады. Механизм по созданию таблицы для имени переменной и ее ID прекрасно работает.

6
Ваши вопросы / Язык проекта и его смена v2
« : 29 Октября 2025, 10:57:31 »
Добрый день!
Произошли ли какие либо изменения по теме https://simple-scada.com/forum/index.php?topic=1465.msg11009#msg11009, особенно в части сообщений?
Ну и в принципе 2 вопроса:
1. Можно ли получить доступ на изменение текста сообщения или рассматривается такая возможность в будущем?
2. В проекте есть много объектов со свойствами. Например Text1, Text2, Field1 и т.д. Они  все типа TM_Control и имеют  свойства например H. Но вот само ID объекта, вот это Text1 или Field1 как то можно получить, хотя бы для чтения? Или это только для внутреннего Вашего использования и не рассматривается вопрос о предоставлении какого либо доступа для пользователей?
Жду вопросов и предложений!

7
Ваши вопросы / 2 клиента
« : 28 Октября 2025, 16:09:24 »
Добрый день!
Вопрос в принципе простой, но есть нюансы.
С точки зрения запуска на одном компьютере можно запустить только один десктоп-клиент.
Вопрос №1. Можно ли при запущенном десктоп-клиенте на этом же компьютере запустить web-клиента для 2го проекта?
Вопрос №2. Можно ли из запущенного клиента как бы закрыть этот проект и запустить другой проект?
Вопрос №3. При положительном ответе на вопрос №2 будет ли АРМ №1 (1 десктоп-клиент + 1 web-клиент) + АРМ №2 (1 десктоп-клиент) = Сервер (2 проекта/ 3 лицензии) считать правильным?
Жду ответов и вопросов.

8
Ваши вопросы / Re: Вопрос по сообщениям
« : 23 Октября 2025, 08:32:11 »
Добрый день!
Есть ли в Ваших планах пункты о доработке системы сообщений? Интересует в части все таки дать возможность пользователям изменять цвет сообщений (например фон и цвет текста) при тех же типах сообщений. Или как предложение добавить 4 тип - пользовательский где уже можно менять цвета (например фон и цвет текста).

9
Ваши вопросы / Отчеты и обновление
« : 10 Сентября 2025, 11:34:13 »
Добрый день!
Проблема.
Была версия 2.6.14.0. В отчете данные были привязаны к источнику. Данные в архиве в наличии и 1го числа приходило письмо с отчетом на почту указанным адресатам.
Стала версия 2.7.2.0. Отчет 1го числа перестал приходить. Вроде ничего не меняли ни отчет ни скрипт.
Разбор ситуации показывает, что если в старый отчет добавить новый источник и согласно руководству добавить переменную в источник, потом добавить ее в отчет то все работает, но переменная со старого источника (как бы та же самая) показывает 0.
Версия архивирования 2.
Посмотреть настройки источников для сравнения как бы нельзя или не знаю как.

Это что касается самого отчета. А вот почему перестал приходить вообще не понятно. Единственное действие это убрали на время доступ к странице с отчетами всем пользователям, где расположены кнопки для формирования отчетов. Но проблемный отчет как бы формируется на сервере и пользователи и доступ к странице ему по барабану. В общем не понятно куда смотреть. Тестовое письмо из инструмента настроек проходит.
Можете у себя проверить?
Жду вопросов и ответов

10
Ошибки / Окно сообщений. Обновление инфо
« : 01 Сентября 2025, 13:35:59 »
Добрый день!
В ходе тестирования идеи с сообщениями и новой системой пользователей заметил, что если окно сообщений привязано к группе сообщений о действиях оператора, при возникновении события (нажали кнопку) инфо обновляется не сразу, а после какого либо действия. Обновляется если менять пользователя и при переходе на другой экран и обратно.
Можете у себя проверить?

11
Как то упустил из виду что для with тоже надо использовать begin..end. Все заработало.
2ой способ как то нагляднее. уже завтра попробую.
Спасибо!

12
Добрый день!
Скрипт универсальный, вешается на тексты с разным значением текста, но значение текста может повторяться, на событие onClick.
Нажимаем на текст с инфо и стрелка показывает где это расположено.
Писать для каждого текста через Name объекта можно, работает. Но хотел подсократить объем кода.
Понятно что вызывающий скрипт объект TM_Control. Но мы как бы приводим его к типу TM_Text, а у него уже свойство .Text есть.
Можете объяснить почему данный скрипт вызывает ошибку 'Undeclared identifier "Text", ... ':
Код: (delphi)
  with (Sender as TM_Text) do
    shWhereProblem.Visible := True;
    if Sender.Text = 'A2.2' then
    begin
      shWhereProblem.X := 506;
      shWhereProblem.Y := 744;
    end;

Хотел бы услышать мнение разработчиков.

13
Ошибки / Календарь в трендах
« : 11 Июля 2025, 11:57:17 »
Добрый день!
На клиенте при открытии инструмента "Тренды" при попытке изменить в календаре месяц (назад) путем нажатия на стрелку как бы дата меняется и практически сразу возвращается на текущую дату. В сообщениях все работает. Ручной ввод даты и времени тоже работает. Клиент на виртуальной машине, доменная сеть, проверял под 2умя разными пользователями и у обоих одно и тоже.

Можете у себя проверить.

14
Ваши вопросы / 2 сервера в работе
« : 10 Июля 2025, 12:25:24 »
Добрый день!
Ситуация следующая. Во время работы "боевого" проекта на сервере скады в той же сети, но с другого компьютера запускается 2ой экземпляр проекта. При этом оба сервера не резервируют друг друга. Почему так было сделано покрыто пеленой времени. Сейчас принимаются меры. Хотелось бы понять как в дальнейшем защитить проект.
Ситуация неприятная, так как оба проекта одинаковы и  обращаются к одному ОРС. Соответственно дублируются команды и получается неуправляемая среда. 1ый проект посылает 1, а 2ой 0.
Определенные меры организационные приняты. Но "пытливые" умы всегда найдут дорогу.
Если кто то уже сталкивался с таким поведением, можете поделиться опытом решения?
Можно ли как то средствами скады запрещать 2ой запуск проекта (понимаю что звучит фантастично, но а вдруг)?
Жду вопросов и предложений!

15
Добрый день!
Обычная практика. Есть слово. Каждый бит = сообщение. Но, например, на сегодня используется 0, 1 и 5 биты. Остальные будут дописаны\проверены потом.
По логике можно добавить все состояния вплоть до 5. Но при этом убрать галочки в 2, 3 и 4 с пунктов "Неподтвержденные" и "Активные" в каждом сообщении. Согласно руководству они не будут отображаться в списках неподтвержденных и активных сообщений.
Но при этом они отображаются в списке "Все сообщения". И как бы получается, если они не заполнены то во время работы как бы все хорошо, но при анализе ситуаций оператор видит кучу пустых сообщений.
Для избавления от таких пустых сообщений - только удаление соответствующих состояний либо редактирование конкретного набора сообщений.
При разработке обычно о таких нюансах не задумываются, но при добавлении новых сообщений как бы есть некоторые неудобства.
Можете ли Вы в своих планах включить пункт о доработке типа если стоит обе галки сообщение не выводить так же в список "Все сообщения" или добавить 3ий пункт "все".
Надеюсь понятно объяснил.

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