Стартовая страница › Форумы › Разработка и интеграция › Драйвер счетчика Меркурий 230, 231, 232, 233, 236
- В этой теме 378 ответов, 19 участников, последнее обновление 11 месяцев, 2 недели назад сделано
a80808.
-
АвторСообщения
-
10.03.2020 в 09:46 #15160
talbutdinov
УчастникНачал со старыми исходниками пока ковыряться, данные в архив загружаются.
Пока с сигналами не совсем разобрался, когда драйвер для Веги писал, тоже на это натыкался, но думаю разберусь …
Не публикуются картинки, уже всяко их прикладывал
10.03.2020 в 10:09 #15161
manjey73УчастникЯ пытаюсь сейчас малой кровью переделать на xml шаблон. Как протестирую, выложу.
talbutdinov объясните куда вы загружаете архивные данные ?
вот например как сделать чтение
1. месячных архивов на начало месяца ? как выбрать период ?
2. суточных архивов на начало дня ? как выбрать период ?в общем много НО…
В Scada нет возможности при вызове команды выбирать периоды. Кстати не помешало бы к командам Стандарт, Бинарная и т.д. добавить вызов календаря и каким-то образом это передавать в драйвер.
10.03.2020 в 10:12 #15162
manjey73УчастникС сигналами там все жестко :). в последнее время я сам назначаю номера сигналов в шаблоне и слежу за их индексацией в KpTags, так проще если мы отключаем чтение каких то параметров, чтобы нумерация сигналов не съезжала.
В Драйвере Меркурий несколько иначе все, там за счет битовой маски все настройки были. Тогда я еще с xml не разобрался…
10.03.2020 в 13:06 #15164talbutdinov
УчастникАрхивные данные я пока не загружаю, я пока сохраняю текущие данные в БД скады. Как вытаскивать профили мощности как раз таки разбираюсь, как записать их в БД проблем нет, на Веге это уже проходил. Логика была примерно такая:
1. Выбирается дата отправная, с которой будет производиться первоначальная загрузка, например 1 число текущего месяца. В драйвере где-то должна сохраняться дата (у конкретного экземпляра КП) последнего загруженного показания из прибора учета (архивного показания)
2. В час X производится загрузка показаний (у меркурия это архив 30+30), данные загружаются либо с даты последней загрузки, либо с отправной точки (если данные загружаются впервые)
3. После успешного обновления в параметрах где-то отображается дата последних записанных архивных данных и при следующем обновление данные вытаскиваются только с этого момента по настоящее времяКак-то так )
10.03.2020 в 13:21 #15165
manjey73УчастникСохранять в свойствах линии для каждого КП не проблема. Такое реализовывал для хранения паролей в МЭК61107, планирую пароли в Меркурий таким же образом сделать.
Ну прочитали мы профили и архивы — вот куда их ? по текущей базе размазывать ? а если несоответствие времени прибора и ПК происходит ?
10.03.2020 в 13:49 #15166talbutdinov
УчастникВ целом сложного нет ничего, если в устройстве сбиты часы, то так или иначе, каким бы способом архив не вытаскивался (например через оптопорт) он будет бесполезен. На Веге у меня введен дополнительный параметр, который показывает отставание архива, что показывает отклонение текущего времени от времени на сервере, где стоит скада.
Что на счет записи архива в скаду, то все не так уж и сложно:
1. Объявляем переменную в виде срезаTagSrez me23x;
2. Задаем размерность, пока просто все возможные параметрыme23x = new TagSrez(70);
3. Задаем в срез текущее время (в случае с архивом — это время записи, в зависимости от ситуации)me23x.DateTime = DateTime.Now;
4. Присваиваем значения в срез, например так `me23x.KPTags[0] = KPTags[0];
me23x.TagData[0].Stat = BaseValues.CnlStatuses.Defined;
me23x.TagData[0].Val = kanal1;`
5. Добавляем примечаниеme23x.Descr = "Дата обновления " + DateTime.Now;
6. Добавляем срез в базуAddArcSrez(me23x);10.03.2020 в 19:10 #15167Romiros
УчастникА в самом приборе дата архива не хранится? Я обычно её и передаю в srez.DateTime.
10.03.2020 в 21:20 #15168
manjey73УчастникВ приборах часы бывает врут, и без возможности выполнять синхронизацию. И такое попадается. По этому я не сторонник доверять часам приборов. Что вносит некоторое ограничение. Как вариант в переменной хранить время из прибора и сравнивать текущим для корректировки как вариант.
10.03.2020 в 21:40 #15169talbutdinov
УчастникКак вариант можно при текущем запросе информации из архива запрашивать текущее время счетчика и в срез добавлять разницу во времени с сервером, чтобы контролировать разницу в показаниях часов, например в минутах.
Только вот сколько я не смотрел описаний как вытаскивать архивные данные (профили мощности) не могу разобраться …
10.03.2020 в 22:04 #15170
manjey73Участникпо идее не должно быть сложно, только скорее всего вы получите массив значений.
з.ы. переделал на шаблон существующие параметры, надо дальше докручивать, чтобы каналы создавались. несколько малой кровью пытаюсь, если получится…11.03.2020 в 06:18 #15171talbutdinov
УчастникЕсли нужна помощь, скидывайте исходники, тоже подключусь. Сейчас доберусь до работы и скину исходники в части создания каналов. Если мне память не изменяет, то каналы создаются во вьюв.
11.03.2020 в 06:54 #15172
manjey73Участникони то там создаются, только в драйвере можно выключать и включать каналы в шаблоне для разных КП и создаваться каналы должны так же исходя из примененного шаблона.
11.03.2020 в 17:13 #15175
MikhailМодераторНамного удобнее обмениваться исходниками через GitHub. И ничего не потеряется.
11.03.2020 в 18:05 #15177
manjey73УчастникПри моем умении программировать лучше на Git выкладывать уже протестированное решение. Иначе меня материть будут, если я сделаю синхронизацию кода с GIT — ом 🙂
Может вечером выложу. Добавил создание каналов, переделал на шаблон.
11.03.2020 в 22:44 #15178
manjey73УчастникОбновил драйвер и исходники на Git. Есть еще что доделывать.
Теперь драйвер считывает настройки из xml файла
Имеет возможность задавать пароль доступа на каждый счетчик в отдельности не создавая новые файлы шаблонов через Пользовательские параметры линии связи
Наименование — 64_pass (соответственно пароль для 64-ого КП на линии)
Значение — собственно пароль.
Если нет соответствующей записи, пароль берется из шаблона. (Удалить строку требуемого КП)
Теперь создает согласно настройкам шаблона Входные каналы в БДВ каком то из шаблонов не сменил пароль на 111111.
Удалять атрибуты value нельзя, их количество соответствует количеству данных.Михаил, поправите ссылку в репозитории. Теперь последняя версия будет в zip, так как она теперь работает совместно с библиотекой ScadaCommFunc. В zip весь необходимый комплект
-
Ответ изменён 6 лет, 3 месяца назад пользователем
manjey73.
-
Ответ изменён 6 лет, 3 месяца назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.