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

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

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

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


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

Страницы: [1] 2 3 ... 17
1
Добрый день!
Вопрос в теме.
Не получилось сделать экспорт шаблонных сообщений в excel файл.
Это проблема или такой возможности, пока, нет?

2
Меня устраивает полностью. Других не совсем.
Плюс к самому архиву проекта можно накидать например конфиги ОРС серверов, какие то руководства и т.д.
Это все может быть в виде архивом, текстовых и бинарных файлов, pdf еще в придачу. И это все в течении "жизни" проекта может меняться.
Поэтому хотелось собрать опыт коллег, которые этот вопрос возможно уже решили, убрали подводные камни и почивают на лаврах попивая чаек.
От разработчиков самой скады хотелось бы услышать рекомендации стоит или не стоит использовать ту или иную систему. Например, можно ли настроить папку для резервных копий проекта на удаленный ресурс (яндекс диск или сетевой диск организации).
Как то так.

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

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

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

6
Ваши вопросы / Re: Ввод данных типа Single
« : 26 Марта 2025, 15:59:36 »
Спасибо! будем пробывать

7
Ваши вопросы / Re: Ввод данных типа Single
« : 26 Марта 2025, 14:20:46 »
В проекте я использовал вот такую конструкцию:
Код
     case Trunc(PositionTC.Value * 10) of
        0..160      : wNumberPlace.Value := 1;
        161..1000   : wNumberPlace.Value := 2;
        1001..5000  : wNumberPlace.Value := 3;
        5001..7000  : wNumberPlace.Value := 4;
        7001..10000 : wNumberPlace.Value := 5;
      end;
и получается как бы физически объект находиться на позиции 100.1 это уже 3 участок, оператор вводит 100.1, но у нас получается 100.099998 и нарушается логическая цепочка.
Я так понимаю в моем случае надо все делать через if.

8
Ваши вопросы / Ввод данных типа 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.
Можете пояснить?

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

10
Ваши вопросы / Массивы и работа с ними
« : 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 клиент просто делает переподключение к серверу. Все остальное работает.
Подозрение на новые введения. Сравнение указывает только на глобальный модуль и скрипт. Комментируем скрипт, перезагрузка проекта и - все работает в штатном режиме.
В журнале ни каких аварийных записей.
Повторил эту же ситуацию на локальном ноуте в простом проекте. Все то же самое "Соединение с сервером было разорвано" и потом подключение.
Можете проверить у себя.

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

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

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

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

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

13
Добрый день!
В принципе к обнулению таблицы то же думал обратиться. Спасибо за решение.
Ну а сам скрипт думаю повесить на кнопку. Если надо нажми, посмотри, выбери и сделай что надо. А при окончании работы это все обнулиться.
 

14
Добрый день!
В секундном скрипте делаем обработку добавления в ячейки таблицы через 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.

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

15
Ваши вопросы / Re: Кнопка "зависла"?
« : 13 Января 2025, 08:55:04 »
Добрый день!
Ну в принципе экспериментируя убедились в проблеме на стороне ОРС.
Спасибо за разъяснения. Будем думать.

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