УкраїнськаEnglishmRussian
Вход/Новый
В теме нет новых постов

работа с архивами


Автор Сообщение
Сообщение создано: 30. 09. 2017 [23:15]
arcsin
Аркадий Кисель
Contributor
Создатель темы
Зарегистрирован(а) с: 17.02.2017
Сообщения: 77
добрый вечер! поделитесь опытом как можно изменять значения в архивах openscada. из-за того что не учел значение EVAL при обрывах связи обнулялась переменная (а не должна). и есть ли возможность "импортировать" архивы? например: если я год записывал температуру на улице питоном в sqllite, но хочу перевести "метеостанцию" на openscad'у, без потери "нажитого". еще вариант: для отладки интерфейса сделал кольцо модбаса из этой же скады, после тестирования хотелось бы удалить из архива то, "чего не было".

[Сообщение редактировалось 1 раз(а), в последний раз 30.09.2017 в 23:48.]
Сообщение создано: 02. 10. 2017 [10:04]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"arcsin" wrote:

добрый вечер! поделитесь опытом как можно изменять значения в архивах openscada.

setVal()
vArh
Пример в функции пересчёта архива, которую можно использовать и для всякого импорта и экспорта.

"arcsin" wrote:

из-за того что не учел значение EVAL при обрывах связи обнулялась переменная (а не должна). и есть ли возможность "импортировать" архивы? например: если я год записывал температуру на улице питоном в sqllite, но хочу перевести "метеостанцию" на openscad'у, без потери "нажитого". еще вариант: для отладки интерфейса сделал кольцо модбаса из этой же скады, после тестирования хотелось бы удалить из архива то, "чего не было".

Вопрос импорта/экспорта это очевидно вопрос внешнего формата данных, а значит это не вопрос особой их реализации в OpenSCADA. Т.е. если Вам нужно что-то конкретное то Вы можете самостоятельно это в OpenSCADA реализовать, функцией вроде пересчёта архива с её вызовом из под нужного интерфейса или прямо, как собственно Вы делали с CSV и PDF, только назад.

Learn, learn and learn better than work, work and work.
Сообщение создано: 05. 10. 2017 [09:43]
arcsin
Аркадий Кисель
Contributor
Создатель темы
Зарегистрирован(а) с: 17.02.2017
Сообщения: 77
Роман, спасибо за ответ.
вот данной функцией пытаюсь перезаписать значение

JAVASCRIPT
//addr = "DAQ.ModBus.Avtoklav.Owen_PLC63.status";
//time = 1504692900;
time = SYS.strptime(time_str);
archtor = "FSArch.1s";
old = vArh(strPath2Sep(addr)).get(time,0,0,archtor);
return vArh(strPath2Sep(addr)).set(val,time,0);


читает верно, но выполняясь второй раз читает тоже самое значение. может ли подчерк "_" ломать путь. хотя с другой стороны get же работает нормально. может ли быть ошибка в конфигурации архива?
Сообщение создано: 05. 10. 2017 [16:15]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"arcsin" wrote:

JAVASCRIPT
//addr = "DAQ.ModBus.Avtoklav.Owen_PLC63.status";
//time = 1504692900;
time = SYS.strptime(time_str);
archtor = "FSArch.1s";
old = vArh(strPath2Sep(addr)).get(time,0,0,archtor);
return vArh(strPath2Sep(addr)).set(val,time,0);


читает верно, но выполняясь второй раз читает тоже самое значение. может ли подчерк "_" ломать путь. хотя с другой стороны get же работает нормально. может ли быть ошибка в конфигурации архива?

Плохо смотрите примеры и читаете документацию!
Про функцию vArh.set() написано:
bool set( ValObj val, int sec, int usec ) — запись значения val в буфер архива на время sec:usec.

Т.е. пишет она в буфер, а не архив, да и аргумента архиватора у неё нет, а потому, что запись значений по одному это в принципе плохо да и не реализуется отдельно.
Но добавил и в следующей ревизии рабочей версии будет, как для функции setVal():

JAVASCRIPT
using Special.FLibSYS;
 
addr = "Archive.va_CPULoad_load";
time = SYS.strptime("2017-10-05 15:40:00");
archtor = "FSArch.1s";
 
old = vArh(addr).get(time, 0, 0, archtor);
SYS.messInfo("vArh", "Get="+old);
rez = vArh(addr).set(old+1, time, 0, archtor);

2017-10-05T16:07:14 1[vArh] Get=0,793650805950165
2017-10-05T16:07:18 1[vArh] Get=1,79365080595016
2017-10-05T16:07:24 1[vArh] Get=2,79365080595016


Learn, learn and learn better than work, work and work.
Сообщение создано: 02. 07. 2019 [06:14]
Barn
Игор М
Зарегистрирован(а) с: 27.05.2019
Сообщения: 2
Здравствуйте, требуется помощь(за вознаграждение) в создании отчета. Отчет должен формироваться условно из сессий. Перед началом сессии заполняется форма с данными, данные вводятся через строковые виджеты и считываются с переменных, соответственно данные различны - текстовые поля и числовы значения. После того как форма заполнилась данные ожидают запуска сессии по определенному сигналу. По сигналу запуска данные заносятся в архив, а также метка времени о начале сессии, по завершении сессии должна зафиксироваться метка окончания по времени, и некоторые данные должны быть дополнены и сохранены в архив и каждой сессии должен быть привязан номер сессии. В отчете должны отображаться номер сессии и время начала, окончания сессии, и те данные которые мы зафиксировали в форме для заполнения. Более подробно если нужно в личку. Время до конца недели.
Сообщение создано: 02. 07. 2019 [08:06]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"Barn" wrote:

Здравствуйте, требуется помощь(за вознаграждение) в создании отчета.

Такие запросы нужно писать в тему форума "Запрос функций и услуг" и не смешивать с другими тредами!

Learn, learn and learn better than work, work and work.



1704