Стартовая страница › Форумы › Понять, как работает ПО › Модуль экспорта в БД (ModDBExport )
- В этой теме 23 ответа, 5 участников, последнее обновление 6 лет, 3 месяца назад сделано
Mikhail.
-
АвторЗаписи
-
06.01.2020 в 08:12 #14475
hizkiyau
УчастникПривет всем участникам форума!
Где то читал на форуме и сам пробовал использовать модуль экспорта в базу данных, он пишет лишь данные от реальных каналов, Дорасчетные — не пишет.
Тут на днях заметил что модуль стал писать все каналы: Реальные и Дорасчетные (тут правда одни 0).
Вопрос вот в чем, а зачем в новой версии сделана такая реализация — писать дорасчетные каналы с одними 0, тогда уж с данными — больше пользы. И как все это отключить, запись дорасчетных каналов с 0 ?06.01.2020 в 10:54 #14479
MikhailМодераторДобрый день!
Изменений логики работы модуля экспорта не было.
Напишите, какая у Вас версия SCADA-Сервера и модуля экспорта. Проверьте, что дорасчётные каналы не привязаны к Коммуникатору.06.01.2020 в 13:00 #14482hizkiyau
УчастникСкада самая свежая. Логику не менял.
№1000 Дорасчетный канал [Часы] с формулой GetTime()
public double GetTime() { return EncodeDate(DateTime.Now);}1. в собственную базу скада пишет этот канал со значение времени типа double
2. пишет и с ModDBExport в Postgres , только со значение =0Раньше такого не было, на более ранних версиях скады
06.01.2020 в 13:15 #14483hizkiyau
УчастникС другими дорасчетными каналами,связь с коммуникатором есть:
дорасчетный канал получает значение статуса с прибора через коммуникатор
а реальный канал с формулой проверяет этот статусНо темнее менее в более ранней версии скада при этом в базу не записывались значения дорасчетных каналов
07.01.2020 в 11:27 #14488
MikhailМодераторНапишите точные версии.
Сделайте скриншоты настроек.07.01.2020 в 14:28 #1449107.01.2020 в 17:24 #14492hizkiyau
УчастникВыслал вам скрины,
Да,вы правы: когда дорасчётные каналы привязаны к Коммуникатору,то пишутся в стороннюю базу автоматически со своими значениями.
В принципе не критично, но опять таки — лишняя нагрузка на базу без реального выхлопа. Логичней было бы — не записывать их вовсе или записывать так все дорасчетные , а не те что связаны с коммуникатором.
Если возможность как то формулами это исключить — запись в базу?08.01.2020 в 09:46 #14493
MikhailМодераторДорасчётные каналы не должны быть привязаны к Коммуникатору.
Возможно, Вам нужно просто изменить тип канала на ТС или ТИ.
Для чего, например, канал 300 сделан дорасчётным?08.01.2020 в 13:18 #14494hizkiyau
УчастникЗдравствуйте Михаил,
канал 300 тип Дорасчетный сделан для того что бы получить от прибора 2-х байтовый регистр в одном из бите которого храниться 0 или 1 (статус того что прибор работает нормально). А канале ТС я это прежде обязан проверить, прежде чем вывести значение в интерфейс скады.
1. Если отвязать Дорасчетный канал от коммуникатора, то естественно он не будет записываться в базу, но и проверить статус так же будет невозможно.
2. Приходил мне в голову вариант как обойтись: в ТС канале получить все регистры и значение и статус в в виде массива 16 битных регистров, а потом разбирать через формулы что и как …. слишком мутно.
Если есть идеи предложите, как сделать ?
Изменять Дорасчетный канал с ТС на ТИ не пробовал, не уверен что это сработает08.01.2020 в 14:10 #14495Romiros
Участникканал 300 тип Дорасчетный сделан для того что бы получить от прибора 2-х байтовый регистр в одном из бите которого храниться 0 или 1 (статус того что прибор работает нормально). А канале ТС я это прежде обязан проверить, прежде чем вывести значение в интерфейс скады.
Логика не понятна. Зачем эти каналы делать дорасчетными, если Вы используете данные от приборов. Поясните пожалуйста.
Дорасчетные каналы предназначены для вычисления на основе данных других каналов.
Получить нужный бит можно используя формулу во входном канале ТИ или ТС.09.01.2020 в 17:05 #14500
MikhailМодераторДля канала типа ТС или ТИ формула тоже вычисляется. Это происходит в момент получения данных. Если нужен только 1 бит из всего регистра, считанного из прибора, то Вы можете обойтись одним каналом типа ТС. Если нужно получить несколько разных битов, то потребуется вариант 2, который Вы описали.
27.05.2020 в 12:17 #16247slava136
УчастникЗдравствуйте, не могу разобраться в чем проблема.. Как будто нет связи с БД. БД стоит на удаленном сервере, созданы таблицы, но туда ничего не записывается.. В модуле экспорта прописано вроде все правильно, 3 источника данных, соединение тоже все прописано.. В ручном режиме выдает ошибку : object reference not set to an instance of an object
INSERT INTO runtime(datetime, cnlnum, val, stat)
SELECT @datetime, @cnlNum, @val, @stat WHERE @cnlNum = 102 or @cnlNum = 103 or @cnlNum = 302INSERT INTO cnldata (datetime, cnlnum, val, stat)
SELECT @datetime, @cnlNum, @val, @stat WHERE @cnlNum != 101 and @cnlNum != 301INSERT INTO trigger (datetime, cnlnum, val, stat)
SELECT @datetime, @cnlNum, @val, @stat WHERE @cnlNum = 101 or @cnlNum = 30127.05.2020 в 17:19 #16263
MikhailМодераторДобрый день!
Смотрите логи модуля экспорта.28.05.2020 в 04:31 #16276slava136
УчастникПодскажите не опытному, где их найти…)
28.05.2020 в 08:46 #16278 -
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.