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

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

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

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


Темы - Серега

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

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

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

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

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

20
Ваши вопросы / Мигание фона текста
« : 19 Июня 2025, 11:11:51 »
Добрый день!
Как бы используя примеры из руководства рассчитывал, что в объекте типа текст при активации мигания будет изменяться фон текста, а получилось мигает сам текст.
Пробежался по форуму как то похожей темы не нашел.
Может кто подскажет решение? Понимаю можно сделать через таймер. Но может у кого то есть красивое решение.

21
Добрый день!
Вопрос в теме.
Не получилось сделать экспорт шаблонных сообщений в excel файл.
Это проблема или такой возможности, пока, нет?

22
Добрый день!
Стоит задача - реализация контроля изменений в проекте и сохранение актуальной версии.
Прекрасно понимаю, что можно использовать много чего (Git, SVN, Rsync, в конце концов .zip или запуск на исполнение .bat-файла с набором инструкций).
Возможно кто-то что-то пытался сделать похожее. Интересно узнать что придумали.
Как бы сами файлы скады (например по размеру файла) можно отслеживать, если вести какой-нибудь файл типа update.txt, где писать глобальные изменения или что изменено за день.
Можно отслеживать файлы пользователя, папку Picture.
В общем хотелось бы узнать был ли такой опыт у кого-то.
Возможно будут какие-то рекомендации от разработчиков скады.
Жду вопросов и предложений!

23
Добрый день!
Экспериментируя (в версии 2.6.14.0, но запланирован переход на новую версию) с зоной нечувствительности и архивацией заметил следующее:
1. если у переменной установлено шкала, архивирование и зона нечувствительности, то при запуске из редактора клиента 1ое изменение значения с 0 на заданное, но ниже зоны нечувствительности, данное изменение на графике отображается. Если изменить значение больше зоны и скинуть все на 0, то 2ое изменение ниже зоны нечувствительности отрабатывает как надо и на графике не показывается
2. при изменениях значения переменной на графике видно  как бы текущее значение переменной (в виде столбика) если изменение ниже зоны (надеюсь понятно объяснил и сможете это увидеть)
3. если стоит тип архивации по изменению ступенчатый при повторном запуске клиента из редактора, после выхода с клиента на графике отрисовывается постоянный рост до введённого значения ниже зоны. Как будто включена какая-то аппроксимация.
Допускаю из-за отличий версий неправильную работу. Но с новой версией пока не могу поработать.
Можете у себя проверить?
Жду вопросов и ответов.

24
Добрый день!
В официальной документации написано:
Цитировать
...сообщения подтверждаются на всех клиентах сразу. В v1 сообщения нужно отдельно подтверждать на каждом клиенте;...
Соответственно проект переведен на версию 2. Как разработчик мне 2 версия нравиться больше. Но вот операторам стало не удобно.
При версии 1 каждый квитировал и видел ошибки на своем месте. А при версии 2 кто то 1ый квитировал и получается как бы другие операторы уже активные сообщения не видят.
И вот теперь вопрос как оставаясь на версии архивирования 2 "вернуть" ситуацию при версии 1 (ошибки на каждом клиенте).
Сейчас видеться следующие направления:
1. более широко использовать систему пользователей, настроить для каждого свои права
2. использовать отдельные окна сообщений для каждого участка со своими группами сообщений
Если кто-то уже делал так или есть идеи как сделать присоединяйтесь к обсуждению.
Ну а товарищи из суппорта возможно подскажут как это сделать правильно :)

25
Ваши вопросы / Ввод данных типа Single
« : 25 Марта 2025, 17:01:16 »
Добрый день!
В ходе экспериментов для одной идеи наткнулся на не совсем понятное поведение.
Создал переменные, скрипты, мнемосхему. И при вводе в поле например значения 100.1 должен сработать скрипт. Но не срабатывает.
Начал выяснять и получается что я набираю 100.1 а отображается в поле значение 100.099998 (это уже в настройках поставил 6 знаков после запятой чтобы увидеть).
При этом небольшое тестирование показало, что для переменной типа Single до значения 32 все нормально.
Поясню. Если вводим 19.1 то и отображается 19.1. Вводим 31.1 отображается 31.1. Но если 32.1 и больше, то отображается 32.099998.
Можете пояснить?

26
Ошибки / Линии и их выделение
« : 06 Марта 2025, 11:34:57 »
Добрый день!
Прикольный глюк нашел.
Если в столбец расположить линии, то при выделении сверху вниз в любом порядке но строго вниз по середине предыдущей линии остается серый круг центра объекта.
Если идти снизу верх то все нормально. Так же если фокус с выделенных линий переместить на другой любой элемент то же все работает правильно.
В тестовом проекте также получилось повторить. При этом там разные ситуации и комбинации получаются, даже если сбоку поставить такие же линии.
Можете у себя проверить.

27
Ваши вопросы / Массивы и работа с ними
« : 19 Февраля 2025, 15:02:01 »
Добрый день!
Итак вводные данные.
Согласно темам с форума объявляем и инициализируем статический массив в глобальном модуле (3ий по счету, когда то Вы писали, что так делать можно).
например такой:
Код: (delphi)
interface
var
  MinArrayNamesObjects: array[1..2] of string = (
    'человек',
    'автомобиль'
   );

  ArrayNamesObjects: array[1..4] of string = (
    'человек',
    'велосипед',
    'автомобиль',
    'кошка'
  );
На мнемосхеме выставляем элемент Текст (например с именем Camera1Text).
Заводим новый скрипт по изменению переменной например IDObject тип LongWord.
Текст скрипта ниже.
Код: (delphi)
begin
  Camera1Text.Text := ArrayNamesObjects[IDObject.AsInt];
end.
Ошибок компиляции нет, проект сохраняется без ошибок.
Запускаем клиента и тут...
При попытке перейти на страницу с элементом Camera1Text клиент просто делает переподключение к серверу. Все остальное работает.
Подозрение на новые введения. Сравнение указывает только на глобальный модуль и скрипт. Комментируем скрипт, перезагрузка проекта и - все работает в штатном режиме.
В журнале ни каких аварийных записей.
Повторил эту же ситуацию на локальном ноуте в простом проекте. Все то же самое "Соединение с сервером было разорвано" и потом подключение.
Можете проверить у себя.

28
Ваши вопросы / Архивирование и точность
« : 27 Января 2025, 15:12:58 »
Добрый день!

В настройках переменной есть понятие формат. В зависимости от настройки формата будет отображаться на клиенте, то значение которое надо. Т.е. если четыре 0 в формате указано, то 4 знака после запятой будет отображаться на клиенте.
Так же есть понятие зона нечувствительности, где как бы настраиваются пороги записи в архив.

В БД например при создании таблицы можно использовать команду DECIMAL(X,Y). жестко прописывая количество знаков после запятой, которые будут записаны в архив.

Теперь ситуация. Например есть скорость объекта, указанно 2 знака после запятой. На клиенте все замечательно показывает 2 знака после запятой.
Но вот в БД, так как переменная стоит на архивации по изменению, не настроена зона нечувствительности(можно указать на это и я соглашусь, но сейчас в целом и не об этом),  наблюдаются записи при изменении переменной в 4 знаке после запятой. Как бы скорость равна 0.00, объект не движется, но в архиве есть данные типа 0.00005, 0.00012 и т.д. Как бы дополнительная нагрузка (чтение\запись на диск, передача и т.д.). Про зону нечувствительности написал выше.
Вопрос. Можно как то указать средствами SCADA количество знаков после запятой именно для БД?
Предложение. Может быть  в будущем Вы сможете привязать формат переменной к формату данных записывающихся в БД?
Жду вопросов и предложений!

29
Добрый день!
Нашли случайно весьма интересное событие. В ходе разработки, иногда некоторые элементы выносим за пределы видимой части мнемосхемы (например разные варианты решения или например тиражирования одного и того же набора элементов) и после опробывания удаляем.
Если режим одно мониторный, то как бы все нормально.
Если режим 2х мониторный по горизонтали и мнемосхема с элементами, выведенными за ее границы, стоит слева первой, то как бы на втором экране видны подсказки от элементов 1го экрана, которые за границей при подведении курсора мыши в эти зоны. В принципе их удаление решает вопрос.
Но возникли вопросы.
1. Это так и задумывалось (другими словами это фича или глюк)?
2. Если расположить кнопку за пределами видимой части мнемосхемы в 2х мониторном режиме будет сработка, если нажать приблизительно в месте, где кнопка находиться? Сейчас нет возможности самим это проверить.
Жду вопросов и предложений.

30
Добрый день!
В секундном скрипте делаем обработку добавления в ячейки таблицы через ScanDirectory имен файлов в директории GetProjectPath + 'User files\'.
Создание файлов через проводник системы (так как знаем, что создать через скаду нельзя) четко отображается в скаде. Есть нюансы с превышением количества файлов над количеством таблицы. Но это чуть позже разбираться будем. Сейчас 3 строки = 3 файла.
Далее через скрипт Table1_OnCellClick(выбираем имя файла) и скрипт кнопки Button1_OnClick(директория + имя файла и действие удаление файла) удаляем файл.
В проводнике наблюдаем удаление файла.
Но вот обновление таблицы через секундный скрипт не происходит. Переход на другую страницу не помогло. Такое ощущение, что не меняется ответ от ScanDirectory.
Секундный скрипт:
Код: (delphi)
var
  i: Integer;
  pathFileLocal:string;
  aList: TM_ScanDirResult;
begin
  pathFileLocal := GetProjectPath + 'User files\';
  aList := ScanDirectory(pathFileLocal, sdtFiles);
  for i := 0 to aList.Count - 1 do
  begin
    Table1.Columns[0].Cells[i+1].Text := IntToStr(i);
    Table1.Columns[1].Cells[i+1].Text := aList[i].Name;
  end;
end.

Можете подсказать что не так?
Жду вопросов и предложений.

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