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

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

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

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


Сообщения - Simple_Scada

Страницы: 1 ... 3 4 [5] 6 7 ... 87
61
Здравствуйте.

Цитировать
может быть есть скрипт для подсчета астрономического восхода и захода солнца
Какого-либо готового решения нет. Обычно, для данных целей используется астрономическое реле времени, которое может управлять включением/отключением в зависимости от восхода/захода солнца по заданным координатам местности.

Цитировать
планируется ли добавление в функционал расписания включение/отключения по заходу/восходу?
Добавление такого функционала в ближайшем будущем не планируется.

62
Здравствуйте.

Если требуется отобразить время наработки на мнемосхеме, то можно использовать процедуру ArchiveTimeOn - см. пример №2 по ссылке. Если это требуется для отчета, то пример создания такого отчета можно найти по ссылке.

63
Цитировать
Код более ста строк, не знаю как весь скопировать
Нажать сочетание клавиш Ctrl + A (выделить все) и Ctrl + C (копировать). Но в этом случае лучше пришлите на support@simple-scada.com текущую версию проекта из директории "..\Simple-Scada 2\Projects\" и укажите скрипт, который нужно проверить.

64
Здравствуйте.

Максимально подробно опишите задачу, которую Вы пытаетесь решить и приложите текущий код скрипта.

65
1. Какую версию Simple-Scada Вы используете - 2.6.14.0 или более старую?
2. Вы включаете/отключаете границы из клиента? Если установить опцию "Граничные значения переменных" в "сохранять", то Simple-Scada будет автоматически сохранять граничные значения и тип границ всех переменных, а при запуске проекта будет автоматически загружать их, игнорируя настройки границ заданные в редакторе! Т.е., в этом случае управлять границами переменных можно будет только через клиент.
3. В другой теме Вы писали, что каждый раз при смене описания переменных удаляете их и импортируете снова. Если так, то учитывайте, что новые переменные никак не связаны с типом границ удалённых переменных и для них придётся задать тип границ отдельно.
4. Пришлите на support@simple-scada.com текущую версию проекта из директории "..\Simple-Scada 2\Projects\" и укажите переменную, которую нужно проверить. Если в проекте имеются конфиденциальные данные, то перед отправкой удалите их и проверьте, что проблема воспроизводится. Либо можно создать новый проект, воспроизвести проблему в нем и отправить нам.

66
Ваши вопросы / Re: GetTrendClient
« : 17 Сентября 2024, 11:36:58 »
Если требуется, чтобы каждый пользователь видел только нужные ему тренды, то можно распределить их по группам и через настройку прав пользователей задать видимость требуемых групп трендов для каждого пользователя. После этого пользователи будут видеть только нужные им группы трендов.

Цитировать
Где можно посмотреть ID пользователей?
Узнать ID пользователя можно только с помощью функции "GetUserID".

Цитировать
Из таблицы трендов можно читать архивы, а можно ли туда писать данные с приборов?
В БД архивируются только текущие данные, поступающие в скада-систему (если у переменной включена архивация). Записывать сторонние данные в таблицы БД созданные скада-системой нельзя. Это будет приводить к порче и искажению отображения трендов.

67
Здравствуйте.

В будущем мы планируем добавить функции импорта/экспорта между проектами – это один из популярных запросов. Но какой-то определенный срок появления такой возможности сейчас назвать сложно.

Сейчас необходимые объекты окна/страницы можно скопировать из одного проекта в другой следующим образом: отрыть первый проект в редакторе, выделить нужные объекты, скопировать их нажав Ctrl + C, затем (не закрывая редактор) открыть другой проект и вставить в него ранее скопированные объекты нажав Ctrl + V. При этом следует учитывать, что у скопированных объектов будут удалены связи со скриптами и переменными.

68
Ваши вопросы / Re: Импорт переменных из arOPC
« : 16 Сентября 2024, 16:11:40 »
Здравствуйте.

Если требуется обновить свойства переменных (кроме имени, т.к. при импорте имя используется как ключевой параметр), то можно выполнить экспорт переменных в файл, отредактировать необходимые свойства и выполнить импорт переменных из файла, указав "Тип импорта" -> "обновить существующие". Тогда свойства совпадающих по имени переменных будут обновлены.

69
Ваши вопросы / Re: GetTrendClient
« : 16 Сентября 2024, 12:36:31 »
Здравствуйте.

Цитировать
Можно сделать редактируемую группу трендов, а как сохранить выбранные переменные?
Редактируемая группа трендов сохраняет текущий набор трендов до перезапуска клиента. После перезапуска, в редактируемой группе отобразится набор трендов, заданный при разработке проекта в редакторе.

Цитировать
Если я правильно понял, то TimeTrends дает доступ к параметрам тренда проекта, а не клиента?
TimeTrends – это свойство компонента "Временные тренды". Изменение любых свойств компонента отобразится сразу на всех клиентах.

Цитировать
SetTrendClient задает клиенту для нужной группы и позиции переменную. А как их считать?
Не совсем понятно, что Вы имеете в виду. Опишите задачу, которую Вы пытаетесь решить и, возможно, мы предложим решение.

70
Здравствуйте.

Свойство "Доступен" работает в соответствии с описанием в руководстве. Если свойство активно, то уровнем можно будет управлять. Дополнительно ограничить доступ к уровню можно с помощью настройки прав доступа к объекту. При этом ползунок останется активным, но ввести значение через ползунок не получится - будет выдаваться окно с соответствующим предупреждением. Также следует учитывать, что ползунок уровня не отображается в web-клиенте - ввод значения доступен только через поле уровня.

71
Здравствуйте.

Цитировать
Требуется выбрать минимальное, максимально и среднее значение из базы по нескольким датчикам и группе датчиков за заданный период времени. ...как реализовать по нажатию кнопки выполнение нескольких запросов с последующей передачей данных в переменные и отчет.
Если указанные данные нужны для построения отчета, то для решения задачи не требуется использовать скрипты и SQL-запросы.

Вы можете создать периодический отчет и на шаге добавления переменной в источник выбрать соответствующий "тип обработки" -> "минимум", "максимум" или "среднее". Далее переменной интервала "Данные_Интервал" нужно задать значение равное 0, тогда вычисления будут производиться за весь период времени, без разбивки на интервалы. Теперь полученные переменные можно перетащить на страницу отчета (см. скриншот во вложении). В итоге, при построении отчета в эти переменные будет выводиться минимум, максимум и среднее за необходимый промежуток времени. Перед вызовом построения отчета нужно задать требуемый интервал времени через соответствующие переменные - в примере это переменные "vrTimeBegin" и "vrTimeEnd".

Дополнительные рекомендации:
1. При формировании SQL-запросов к штатной БД необходимо указывать нужный слой архива для выборки - см. описание колонки "l". Это позволит исключить лишние данные. В Вашем случае, можно было использовать основной слой.
2. Данные, полученные через приведенные SQL-запросы могут быть некорректными, особенно это касается вычисления среднего. Через SQL-запрос Вы получите среднее арифметическое точек архива за указанный интервал времени. Данный результат точно будет неправильным, т.к. для корректного вычисления среднего по архивным данным, необходимо учитывать длительность нахождения переменной в каждом значении. Поэтому в отчетах используется вычисление средневзвешенного по времени значения.

72
Здравствуйте.

Счетчик цикла For в каждой итерации увеличивается на единицу. Изменить его внутри цикла нельзя. Вам нужно использовать цикл While:
Код: (delphi)
      BB_str_1.Value:='';
      //Чтения всех регистров и формирование строки
      ii := 1;
      i := 11;
      while i <= 1257 do
        begin
 
          aVar1:=GetVariableByName('Reg_'+IntToStr(i)+'_'+IntToStr(k));
          aVar2:=GetVariableByName('Reg_'+IntToStr(i+1)+'_'+IntToStr(k));
          aVar3:=GetVariableByName('Reg_'+IntToStr(i+2)+'_'+IntToStr(k));
          aVar4:=GetVariableByName('Reg_'+IntToStr(i+3)+'_'+IntToStr(k));
          aVar5:=GetVariableByName('Reg_'+IntToStr(i+4)+'_'+IntToStr(k));
          aVar6:=GetVariableByName('Reg_1_'+IntToStr(k));
 
          Parsing(aVar6,aVar1,aVar4,aVar5,aVar2,aVar3,BB_str_1,ii);
          ii := ii+1;
          i := i+5;
        end;

73
Здравствуйте.

Как уже писали Вам выше, подобные артефакты могут возникать только из-за проблем в работе драйвера видеокарты или самой видеокарты. Если обновление видеодрайвера не помогает, то остается только менять видеокарту. Рекомендуем использовать видеокарты от производителей, которые часто обновляют драйверы и вносят исправления, например ASUS, Gigabyte.

74
Ваши вопросы / Re: Функции внутри скриптов
« : 10 Сентября 2024, 21:09:16 »
Здравствуйте.

Да, будет работать также, как и в старой версии. Последний раз изменения в компилятор скриптов вносились в версии 2.3.4.7 (04 апреля 2019г.). Со всеми изменениями версий Simple-Scada можно ознакомится по ссылке. Для тестирования новых версий можно использовать бесплатные демо-версии.

При объявлении функции, параметры с одинаковым типом данных можно перечислить через запятую:
Код: (delphi)
function picY(ymin, ymax, xmin, xmax: double; x: single): single;
При работе со значением переменной рекомендуем всегда использовать явное приведение к нужному типу. Если в функцию нужно передать значение Single, то используйте свойство переменной AsSingle:
Код: (delphi)
Rectangle_1.Y := picY(517, 462, 0, 100, PositionObjectReal.AsSingle);

75
Здравствуйте.

Рекомендуем избегать использования кнопок "без фиксации" - подробнее см. по ссылке.

Пожалуйста, подробно опишите задачу. Требуется по нажатию на кнопку записать значение в две разных переменных? Или по нажатию нужно изменить два бита одной переменной?

Страницы: 1 ... 3 4 [5] 6 7 ... 87