Стартовая страница › Форумы › Ошибки в работе › Какая связь между Драйвером и БД?
- В этой теме 52 ответа, 3 участника, последнее обновление 3 месяца, 2 недели назад сделано
manjey73.
-
АвторЗаписи
-
07.05.2026 в 16:06 #43274
MikhailМодераторTrendTableViewer-v6, она почему-то может показывать базы только если архивы находятся по пути c:\Program Files\SCADA\Archive\
Кнопка Browse не работает?
07.05.2026 в 16:50 #43275
manjey73УчастникПричина, скорее всего, в том, что при записи исторических данных расчёт по формулам происходит повторно для каждого архива, причём используются те данные, которые есть в архиве, для которого рассчитывается формула.
а почему не из Текущих данных?
Собственно вы нашли причину и поправите в будущем? или это ускользающая штука? почему строго каждые полчаса, а не когда попало?Кнопка Browse не работает?
Все действия одинаковы, но если я загрузил папку архива с сервера в любую папку, или если на локальном сервере(тестовом) у меня архив на другом диске, то ничего не откроется, кроме информации meta. Данных при этом нет, пустое окно.
08.05.2026 в 12:19 #43285
MikhailМодераторПричина, скорее всего, в том, что при записи исторических данных расчёт по формулам происходит повторно для каждого архива, причём используются те данные, которые есть в архиве, для которого рассчитывается формула.
Это алгоритм работы.
Данных при этом нет, пустое окно.
Не могу воспроизвести: https://ibb.co/B2KG70Q3
Возможно, страница не выбрана.08.05.2026 в 13:10 #43288
manjey73УчастникСама Scada в Program Files
Архивы пишутся на диск D — видно откуда откываю.
Данные по meta файлу какие-то есть, а данных по каналам нет.з.ы. плохо, что такой алгоритм, он должен проверять маску архива и смотреть откуда брать данные, если они отсутствуют в том же самом архиве, куда пишется расчетный канал.
И при этом мне все равно непонятно — ПОЧЕМУ строго в 0 и 30 минут? а не все время, если такой алгоритм 🙂
-
Ответ изменён 3 месяца, 4 недели назад пользователем
manjey73.
08.05.2026 в 13:16 #43290
manjey73УчастникЗабавно, у меня есть БД, которая пишет раз в 30 минут, она открылась.
штатная Min и Hour не открываются, meta данные подтягиваются, а по Timestamp все пусто.11.05.2026 в 11:23 #43309
MikhailМодераторСделайте вывод дополнительной информации в файл при расчёте формулы для исторического значения. Возможно, это прояснит, почему так происходит.
11.05.2026 в 11:30 #43310
manjey73УчастникА что именно выводить в файл?
Может есть какое-то свойство, что лучше вам поможет найти причину?А, собственно при чем тут расчетные каналы и открытие БД из другого места?
Или речь о 30-ти минутных глюках?
-
Ответ изменён 3 месяца, 3 недели назад пользователем
manjey73.
12.05.2026 в 12:05 #43319
MikhailМодераторНапример, выводить в файл значения, которые были рассчитаны формулой, чтобы узнать, в какой момент срабатывает формула, что получается в результате расчёта, и что записано в архив.
Использование утилиты для просмотра архива к этому вопросу не относится.
12.05.2026 в 12:14 #43320
manjey73УчастникЯ не очень понимаю, как писать в файл, чтобы он это делал без затирания данных.
Пока просто некогда этим заняться.
Если есть пример скрипта для записи в файл без затирания, типа с добавлением строк, скиньте, я адаптирую под задачу.13.05.2026 в 11:40 #43325
MikhailМодераторpublic const string LogPath = @"C:\MyLog.log"; public void WriteToLog(string s = "") { using (StreamWriter writer = new(LogPath, true, Encoding.UTF8)) { writer.WriteLine(s); } } public CnlData LogHist() { if (!IsCurrent) { WriteToLog($"{DateTime.UtcNow:u}, {DateTime.Now:u}, {Timestamp:u} CnlNum = {CnlNum}, Val = {CnlVal}, Stat = {CnlStat}"); } return CnlData; }В формуле канала: LogHist()
13.05.2026 в 17:16 #43326
manjey73Участник2026-05-13 14:00:07Z, 2026-05-13 17:00:07Z, 2026-05-13 14:00:07Z CnlNum = 902, Val = 1, Stat = 1 2026-05-13 14:00:07Z, 2026-05-13 17:00:07Z, 2026-05-13 14:00:07Z CnlNum = 902, Val = 1, Stat = 1 2026-05-13 14:00:07Z, 2026-05-13 17:00:07Z, 2026-05-13 14:00:07Z CnlNum = 902, Val = 1, Stat = 1 2026-05-13 14:00:07Z, 2026-05-13 17:00:07Z, 2026-05-13 14:00:00Z CnlNum = 902, Val = 1, Stat = 0 2026-05-13 14:00:07Z, 2026-05-13 17:00:07Z, 2026-05-13 14:00:00Z CnlNum = 902, Val = 1, Stat = 0 2026-05-13 14:00:07Z, 2026-05-13 17:00:07Z, 2026-05-13 14:00:00Z CnlNum = 902, Val = 0, Stat = 1 2026-05-13 14:00:07Z, 2026-05-13 17:00:07Z, 2026-05-13 14:00:00Z CnlNum = 902, Val = 0, Stat = 1 2026-05-13 14:00:07Z, 2026-05-13 17:00:07Z, 2026-05-13 14:00:00Z CnlNum = 902, Val = 0, Stat = 0 2026-05-13 14:00:07Z, 2026-05-13 17:00:07Z, 2026-05-13 14:00:07Z CnlNum = 902, Val = 1, Stat = 1 2026-05-13 14:00:07Z, 2026-05-13 17:00:07Z, 2026-05-13 14:00:07Z CnlNum = 902, Val = 1, Stat = 12026-05-13 13:30:07Z, 2026-05-13 16:30:07Z, 2026-05-13 13:30:07Z CnlNum = 902, Val = 1, Stat = 1 2026-05-13 13:30:07Z, 2026-05-13 16:30:07Z, 2026-05-13 13:30:00Z CnlNum = 902, Val = 1, Stat = 0 2026-05-13 13:30:07Z, 2026-05-13 16:30:07Z, 2026-05-13 13:30:00Z CnlNum = 902, Val = 0, Stat = 1 2026-05-13 13:30:07Z, 2026-05-13 16:30:07Z, 2026-05-13 13:30:00Z CnlNum = 902, Val = 0, Stat = 1 2026-05-13 13:30:07Z, 2026-05-13 16:30:07Z, 2026-05-13 13:30:00Z CnlNum = 902, Val = 0, Stat = 0 2026-05-13 13:30:07Z, 2026-05-13 16:30:07Z, 2026-05-13 13:30:07Z CnlNum = 902, Val = 1, Stat = 12026-05-13 13:02:22Z, 2026-05-13 16:02:22Z, 2026-05-13 13:02:22Z CnlNum = 902, Val = 1, Stat = 1 2026-05-13 13:02:22Z, 2026-05-13 16:02:22Z, 2026-05-13 13:00:00Z CnlNum = 902, Val = 1, Stat = 0 2026-05-13 13:02:22Z, 2026-05-13 16:02:22Z, 2026-05-13 13:02:22Z CnlNum = 902, Val = 1, Stat = 1 2026-05-13 13:02:22Z, 2026-05-13 16:02:22Z, 2026-05-13 13:00:00Z CnlNum = 902, Val = 1, Stat = 0 2026-05-13 13:02:22Z, 2026-05-13 16:02:22Z, 2026-05-13 13:00:00Z CnlNum = 902, Val = 0, Stat = 1 2026-05-13 13:02:22Z, 2026-05-13 16:02:22Z, 2026-05-13 13:00:00Z CnlNum = 902, Val = 0, Stat = 1 2026-05-13 13:02:22Z, 2026-05-13 16:02:22Z, 2026-05-13 13:00:00Z CnlNum = 902, Val = 0, Stat = 0 2026-05-13 13:02:22Z, 2026-05-13 16:02:22Z, 2026-05-13 13:01:00Z CnlNum = 902, Val = 1, Stat = 0 2026-05-13 13:02:22Z, 2026-05-13 16:02:22Z, 2026-05-13 13:01:00Z CnlNum = 902, Val = 0, Stat = 1 2026-05-13 13:02:22Z, 2026-05-13 16:02:22Z, 2026-05-13 13:01:00Z CnlNum = 902, Val = 0, Stat = 1 2026-05-13 13:02:22Z, 2026-05-13 16:02:22Z, 2026-05-13 13:01:00Z CnlNum = 902, Val = 0, Stat = 0 2026-05-13 13:02:22Z, 2026-05-13 16:02:22Z, 2026-05-13 13:02:00Z CnlNum = 902, Val = 1, Stat = 0 2026-05-13 13:02:22Z, 2026-05-13 16:02:22Z, 2026-05-13 13:02:00Z CnlNum = 902, Val = 0, Stat = 1 2026-05-13 13:02:22Z, 2026-05-13 16:02:22Z, 2026-05-13 13:02:00Z CnlNum = 902, Val = 0, Stat = 1 2026-05-13 13:02:22Z, 2026-05-13 16:02:22Z, 2026-05-13 13:02:00Z CnlNum = 902, Val = 0, Stat = 0Формулу упростил до
public const string LogPath = @"/opt/scada/ScadaServer/Storage/MyLog.log"; public void WriteToLog(string s = "") { using (StreamWriter writer = new(LogPath, true, Encoding.UTF8)) { writer.WriteLine(s); } } public CnlData LogHist(double val) { WriteToLog($"{DateTime.UtcNow:u}, {DateTime.Now:u}, {Timestamp:u} CnlNum = {CnlNum}, Val = {val}, Stat = {CnlStat}"); return CnlData; }И встроил ее в формулу контроля ДГУ (каналы Симулятора 107 и 108)
public double DguControl1(int bef, int aft) { double outval = double.NaN; if (AND(bef, aft) > 0) { outval = 1; // 1 - Сеть есть } else if (Stat(bef) == 0 && Stat(aft) == 0) { outval = 0; // 0 - Нет сети, генератор в STOP } else if (Stat(bef) == 0 && Stat(aft) > 0) { outval = 2; // 2 - Нет сети, генератор в RUN } var xxx = LogHist(outval); return outval; }Откуда там 0 пролетает, непонятно…
13.05.2026 в 17:17 #43327
manjey73УчастникКстати пробовал на рабочем ПК ту же формулу поставить в Симулятор и удивительно, провалов вроде не было.
Запущу на ночь без записи в файл.То есть что-то происходит со статусом и значением в одной из итераций обработки формул, а не во всех.
13.05.2026 в 17:23 #43328
manjey73УчастникДа, на рабочем ПК кроме Симулятора ничего и нет собственно.
14.05.2026 в 08:22 #43329
manjey73УчастникНа голом Симуляторе такой проблемы нет. Файл не писал, просто вижу по графику.
Но если система нагружена, даже незначительно, проблема при записи в разные БД присутствует.-
Ответ изменён 3 месяца, 3 недели назад пользователем
manjey73.
14.05.2026 в 08:27 #43331
manjey73УчастникНа ночь отключал запись в файл, идут пики на Симуляторе каждые полчаса, а потом неожиданно полный провал с 6 утра.
-
Ответ изменён 3 месяца, 4 недели назад пользователем
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.