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

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

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

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


Сообщения - spkzl

Страницы: [1]
2
Спасибо так работает.
Как задать переменные которые сохраняются в СКАДе ссылку на руководство. Константы из скрипта хочу перенести на экран, и сразу вопрос при изменении констант с экрана нужно ли перезапускать проект на сервере?
Код
const
 // ТРЕВОЖНЫЕ ИНТЕРВАЛЫ
 Contin_Pump_Operation = 20*60;  // таймер максимального времени работы насоса
 Contin_Pump_Shutdown = 90*60;   // таймер максимального отключенного состояния насоса
 Water_Level_Lower = 4*60;       // таймер нижнего уровня воды
 

3
День добрый.

Как проверить что переменная bool находиться в состоянии включена/выключена непрерывно определенное время?
попробовал в скрипте 1s делать проверку на состояние переменной и увеличивать счетчик i:=i+1; вывод i в поле не происходит, считает оно или нет как проверить, как определить проблема с кодом или проблема с выводом.

как при инициализации скрипта задать переменной начальное значение, а то у меня получаются значения при старте вида 101841769.
Код
Contin_Pump_Operation_Count: Integer;  // счетчик работы насоса  
я могу где то в этой строке написать = 0?

Код
Contin_Pump_Operation_Count: Integer;  // счетчик работы насоса
begin
  if in_3_1.Value = True Then 
    Contin_Pump_Operation_Count := Contin_Pump_Operation_Count + 1;
end.   

будет ли этот код рабочим?

В инструкции, ниже, но при приведении типов  Contin_Pump_Operation_Count.AsInt вылетает ошибка .Value тоже выдает ошибку. И ошибки не скопировать с редактора.
Код
begin
  Var_1.Value := Var_2.AsInt + Var_3.AsInt;
end.

4
День добрый.

Скорее всего предположу, что встроенной функции расчета нормального распределения в СКАДе нет. Вы добавить её сможете в следующих релизах сервера, или пример расчета посмотреть?

Пытались сделать анализом всех параметров через реле (то есть включен ли вводный автомат, включен ли автомат цепей управления, достигнут нижний уровень и включен насос, есть ли напряжение до главного автомата.... итд.) оказалось что это большое усложнение схемы.

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

Нужно вычислить отдельно распределение включения и распределения отключения(расхода воды)
И по распределению включения мы будем даже понимать состояния насоса если его производительность начнет снижаться, а по распределению отключения будем понимать сломалась ли схема управления, насос и т.д. то есть выдаст проблему по наполнению

Считается несложно, но нужны промежутки времени включения насоса, и промежутки времени отключенного состояния.
Для примера берем 20 "последних" точек

1. считаем среднее те сумма всех времен / на 20
2. считаем отклонение каждой точки от среднего то что в 1м пункте получилось отнимаем каждую точку
3. возводим в квадрат все точки из пункта 2
4. суммируем все из пункта 3 и делим результат на n-1 то есть /19
5. корень из результата п.4 это сигма

Теперь среднее из  п.1 +- k*п.5 При k=3 в вычисленные границы должно попасть 99,7%  измерений, естественно k коэффициент пред сигмой должен быть доступен для изменения отдельно + и отдельно минус - это и есть аварийные границы.

Естественно эти 20 точек должны тоже меняться можно и 100 точек выбрать для расчетов, также должна быть возможность пропустить новые измерения, то есть не берем последние 1000 измерений, а берем в расчет промежуток 1001-1101. Это позволит режим включения контролировать если насос начнет удлинять время набора воды то лучше сравнивать его с далекими значениями, а не с ближайшими из за того что ближайшие могут медленно увеличиваться, что само собой приведет к расширению допустимых пределов.
Может быть удобнее смещение временем задавать, а не количеством точек.



5
Изначально в проекте списка не было и все работало так как взято с примера.

Потом я добавил список и на событие изменения списка добавил скрипт который изменяет поле соответственно выбору списка - и это работает. Добавляем в таблицу запись корректно.
Код
begin
  Field8.Value := SelectGroup_ComboBox1.Text;
 //   Field8.Value := edtGroup.Value;
end.               

Теперь когда я выделяю в таблице запись, для удаления или изменения поле меняется, но вот список не меняется, остается отображение последнего выбора. Возможно список не поддерживает выбор строки скриптом?

Я делаю через штатное поле, то есть меняю список, список меняет поле и после этого жму добавить и запись добавляется.

Есть возможность избавиться от поля(то которое сверху списка) оставить только поле списка и выбирая в нем строку добавлять в БД, а также перемещаясь по строкам таблицы менять поле списка?

Фактически в таком виде уже рабочий вариант, поле просто скрою.

6
День добрый.

Как мне со списка СКАДы (настроенного) записывать значения в БД, с поля получается, но хочу группу ограничить списком.
За пример взял рецепты, с таблицей все работало, удалить добавить обновить, но вот удалил поле, добавил список, при добавлении группу берет не из списка, а последнюю выбранную из таблицы.
Со списка в БД будут попадать не Текст списка а номер строки списка?

7
Спасибо. все получилось.

8
День добрый.
Мне осталось из переменной DataTime вытащить часы и минуты есть оператор который это сделает или пользоваться преобразованием строки?

Страницы: [1]