Стартовая страница › Форумы › Ошибки в работе › ModDBExport
- В этой теме 12 ответов, 4 участника, последнее обновление 1 месяц, 1 неделя назад сделано
Mikhail.
-
АвторСообщения
-
12.05.2023 в 07:57 #28512
hals
УчастникЭкcпорт в БД 6.0.0.0
PostgreSQL
Текущие данные | Триггер: При полученииПропустить неизмененные данные — работает не корректно. Не важно стоит галочка или нет, неизмененные данные записываются как NULL.
INSERT INTO tablename ( val2 , val3 , val4 , val5 ) VALUES ( NULLIF(@val4002,0) , NULLIF(@val4003,0) , NULLIF(@val4004,0) , NULLIF(@val4005,0) ) ON CONFLICT DO NOTHING;Текущие данные | Триггер: По таймеру
работает корректно12.05.2023 в 15:04 #28519
MikhailМодераторЧтобы уточнить параметры, при которых возникает проблема, сделайте, пожалуйста скриншоты параметров экспорта текущих данных и параметров запроса.
12.05.2023 в 15:27 #28524hals
Участник
вот с такими настройками, если данные не изменились, в базу записывается NULL
сам запрос
а вот так, все работает отлично-
Ответ изменён 2 года, 7 месяцев назад пользователем
hals.
12.05.2023 в 16:40 #28526
MikhailМодераторВы затронули интересную тему. Модуль работает следующим образом:
Для триггера «При получении»
1. Запрос выполняется, когда данные получены Сервером от Коммуникатора.
2. Коммуникатор по умолчанию отправляет только изменившиеся данные и 1 раз в минуту все данные. Поэтому галочка в модуле не повлияла. Нужно также настроить отправку всех тегов в Коммуникаторе.
3. Коммуникатор отправляет текущие данные после опроса устройства. Если у Вас каналы 4001-4011 относятся к одному устройству, то запрос выполнится один раз. А если каналы от разных устройств, то запрос выполнится несколько раз, и часть данных будут пустые.
4. Модуль не записывает NULL. Он пишет 0. Рекомендую завести в таблице также поле для статуса канала, либо в запросе отсекать статус = 0.Для триггера «По таймеру»
1. Запрос выполняется естественно по таймеру.
2. Данные берутся из текущих данных Сервера. Поэтому будут заполнены все переменные запроса, у которого стоит галочка «Одним запросом».Таким образом, если стоит галочка «Одним запросом», то при использовании триггера «При получении» нужно настроить Коммуникатор, чтобы он отправлял все теги и снять «Пропустить неизменённые данные».
12.05.2023 в 17:10 #28529
MikhailМодератор16.05.2023 в 08:44 #28552hals
УчастникСпасибо.
Начал экспериментировать с RapidSCADA 6, на ранней версии, опыта нет.
Очень не хватает документации. Все методом тыка, форум ну и старая документация.
Хороший продукт у Вас получился, очень нравится архитектура.
Надеюсь на появление добротной документации.16.05.2023 в 14:01 #28556
MikhailМодераторСпасибо за положительный отзыв.
Документацию, конечно, будем разрабатывать после портирования оставшихся модулей.31.10.2023 в 00:51 #30206
JurasskParkУчастникДоброй ночи! 🙂
Настраивал экспорт событий в MSSQL и нашёл одну особенность.
Что переменная @ask объявлена, а вот в списке переменных модуля (как справка) её нет.31.10.2023 в 15:46 #30209
MikhailМодераторСпасибо, что заметили. Надо будет исправить.
15.01.2024 в 14:56 #30833
MikhailМодераторПримеры скриптов для разных БД.
31.10.2025 в 13:56 #40964Dmitry64
УчастникДобрый день!
Вопрос также по модулу экспорта.
В настройках модуль включен, вижу что он загружается в логах:2025-10-31 13:47:01 [SCADA201][SCADA201$][ACT] Модуль ModDbExport 6.1.1.2 загружен из файла C:\Program Files\SCADA\ScadaServer\Mod\ModDbExport.Logic.dll
В настройках модуля прописаны настройки подключения к БД POstgres и создан запрос на экспорт текущих данных при получении, но после передачи конфигурации в логе просто нет информации о работе модуля. Нет ни ошибок, ни попыток подключения к БД не вижу, как будто он ничего не делает. И со стороны БД я не вижу попыток подключения указанного пользователя к базе.
Что я не так делаю?31.10.2025 в 14:28 #40965Dmitry64
Участникс подключением разобрался, к базе подключение есть.
Но теперь в логах пишет:POSITION: 63
2025-10-31 14:22:56 Ошибка при экспорте среза по запросу «Запрос 1»: 42703: столбец «datetime» не существуетPOSITION: 63
2025-10-31 14:22:57 Ошибка при экспорте среза по запросу «Запрос 1»: 42703: столбец «datetime» не существуетПри этом в самой базе я вижу 2 таблицы и там есть колонки «datetime»
https://iimg.su/i/sYiz7O03.11.2025 в 13:12 #40984
MikhailМодераторВ SQL-скрипте ошибка. Откуда Вы его скопировали?
Если нужны архивы в PostgreSQL, то рекомендую включить архивы в настройках Сервера, вместо модуля экспорта. Модуль экспорта обычно используется для более нестандартных задач. -
Ответ изменён 2 года, 7 месяцев назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.