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

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

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

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


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

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

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

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

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

35
Ваши вопросы / 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.

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

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

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

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

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

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

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

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

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

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

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

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

44
Доброе утро!
Ясно. Будем думать.

45
Ваши вопросы / Re: Список сообщений
« : 13 Января 2025, 08:52:57 »
Доброе утро!
Я наверное еще не отошел от Нового года! Потому что ну точно вопрос человека который не умеет читать руководство.
Спасибо! Стало понятно.

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