Ответы в темах
-
АвторСообщения
-
Kazam
УчастникПро правую кнопку и не знал) век живи.
Kazam, Вы пробовали приложение Агент? Он для Вас может быть полезен для приёма и передачи конфигурации.
Его и использую для управления коммуникатором и серверов(перезапуск, остановка, старт).
А вот в части передачи конфигурации не совсем подошёл, но по своим причинам. Дело в том, что к стандартным таблицам, в некоторых проектах у меня есть добавленные колонки, и в scadaadminweb они фильтруются при экспорте в dat .. а переписывать агента не хотелось , приложение и так отличное )))На гитхаб в ближайшее время выложу, как только поправлю несколько неочевидных проблем… Не хочется краснеть за код )))
По статье про Лору: начинаю оформлять )
Kazam
УчастникДа и для некоторых библиотек, в частности для opc напрашивается, в свойствах канала не хватает поля «внешний ключ», чтобы теги в коммуникаторе тоже налету формировались.
Так поле сигнал же. Почти то что нужно))
А если серьезно, если для каждого типа КП творить свою историю , то придется делать разные таблицы)
У всех свои особенности ))
А конкретно по opc, если много тегов — проще писать свои инструменты )) на там же питоне или ruby.Kazam
УчастникПривет. Вообще тут напрашивается всю эту логику засунуть в ПЛК, причем если ПЛК подключен по tcp — то использовать tcp сервер.
примерно так: — появляется необходимость передачи — устанавливаем tcp соединение со скада сервером — передаем — готово.в любом случае, мало подробностей. Есть более детальное описание тех процесса ? так будет проще помочь..
Kazam
УчастникБлагодарю за отклики.
1. по Lora
«медлительность» радиоэфира в первую очередь это сама технология, скорость передачи составляет от нескольких сотен бит в секунду, до нескольких десятков килобит.
Далее, время на открытие приемного\передающего окна (это следствие полудуплексной системы передачи), не нулевое.
В момент передачи кадра, станция не видит ничего. и если произошла коллизия, то пакет будет потерян.
В общем нюансов много, а драйвер modbus — да, переделан чуть менее чем полностью )
Все таки, RapidScada как и любая аналогичная, это реалтайм система управления и мониторинга. А плавающее время ожидания (таймаут) это немного из другой оперы. Плюс не гарантированность передачи (приема) пакета.В моем случае, применительно к конкретным объектам и их физическому размещению:
БС поднята на высоту 42 м (высота 16 этажного дома) + 8 метров радиомачта для антенны в 1 м.
Уверенное покрытие подвалов домов (а именно там и установлены регуляторы которыми я хочу управлять), составляет радиус 1 км вокруг БС.
При этом покрытие выше уровня земли, существенно лучше, на данный момент крайний объект (это счетчик импульсов, с автономным питанием), уверенно передает на станцию с расстояния 7.5 км, установлен в квартире на 5 этаже в санузле.2. по ScadAdminWeb
в своих проектах, использую RS повсеместно, количество инсталляций перевалило за 20 уникальных решений (не считаю аналогичные системы, с одинаковыми задачами). В процессе работы приходиться сталкиваться с необычными задачами (например 200-300 однотипных объектов, с практически одинаковыми входными каналами) и заниматься ручным трудом ой как не хочется.
раньше приходилось писать генераторы каналов в SQL запросы типа Insert, чтобы потом их применить к базе CompactSQL и далее копировать файл SDF, запускать Администратор и передавать конфигурацию в scadaserver. Отдельной проблемой был импорт линий связи в коммуникатор (Михаил, где кнопка импортировать все линии? =))А если в процессе работы системы необходимо сделать изменения? нужно добавить\удалить каналы ? на 5, 10, 30 объектах ? Каждый раз лазить в Администратор надоело. Да и не всегда есть доступ по RDP на сервер.
Принял решение построить следующую схему работы:
1. Был переписан ScadaAdmin на работу с Postgres
2. Написаны сервисы по генерации Линий связи\объектов\каналов путем импорта из
csv файлов
3. Спроектированы ситуационные шаблоны для необходимых КП, примерно в следующем виде:new Incnl { Cnlnum = -1, Active = true, Averaging = false, Cnltypeid = 2, Formatid = 2, Paramid = 0, Signal = 1, Name = "Версия ПО" }, new Incnl { Cnlnum = -1, Active = true, Averaging = false, Cnltypeid = 2, Formatid = 2, Paramid = 100, Signal = 2, Name = "СП ТВ1" },которые в последствии складываются в таблицу incnl.
4. Все таблицы из Postgres импортируются в dat файлы и складываются в соответствующую директорию.
5. Путем использования Settings.CommLine и Settings.KP
формируем перечень линий связи и КП в виде дерева, так как это делает ScadaComm в интерфейсе. Далее дерево сохраняется в ScadaCommSvcConfig
6. Перезапускаем сервисы ScadaCommSvc и ScadaServerSvc с использованием ScadaAgent.Все это позволяет редактировать конфигурацию на «лету» через web интерфейс, и нажатием одной кнопки принять все изменения.
Kazam
УчастникИмхо, обычные действия для внешних ресурсов:
1. фильтрация по ip (в случае, если клиенты имеют статические адреса)
2. сложные пароли в ролях.
3. размещение сервера в DMZ
4. перенос стандартного порта IIS (80) в нестандартный (например 7745)
5. использовать https
6. если сервер на windows, то своевременно обновляться, не публиковать RDP и иные стандартные ресурсы наружу. Придерживаться принципа: один сервер (физический или виртуальный) — одна роль.Но лично, я бы поступил так:
1. во внешнюю сеть опубликовать VPN сервер
2. клиенты подключаются к VPN и получают доступ к серверу скады в DMZKazam
Участникhttps://postgrespro.ru/docs/postgresql/9.6/sql-copy пожалуйста =)
Kazam
УчастникСервер Dell Power Edge R620
Intel Xeon 6C E5-2640 2.50GHz- 2 шт
24 GB DDR3
2*SSD 512 GB Raid
NET 1 GBScada и PostgresSQL на этом же сервере. Там же Frontend.
Используется прямая запись в базу данных, минуя ORM или прямые запросы на вставку.
Пользуюсь методом COPY.
В Scada 752 Линии связи и столько же КП. Каждый отдает от 22 до 24 каналов.
Опрос тепловычислителей СПТ и немного сторонних. В драйвере есть логика работы с архивами: по факту их формирования в приборе происходит считывание и запись в SQL.Постоянно занято ресурсов: ЦПУ — 25-30 %, RAM — 30-40 %
В моменты формирования отчетности в Excel бывает, что RAM заполняется до 70 %, но на работе не сказывается….Kazam
УчастникБыла подобная задача.
Быстрый экспорт данных в PostgreSQL, 18 тысяч каналов. Штатного модуля экспорта было недостаточно.
Решил так:
Модуль к ScadaServer при старте заполняет таблицу входных каналов в базе данных статистической информацией (имена каналов, типы и тд). Так же заполняются таблицы:
КП
Unit
Param
CtrlКаждые 100 мс происходит сброс текущих значений каналов в PostgreSQL.
Работает быстро.
Если интересно, можно сделать под ваши задачи.Kazam
УчастникДа нет, мне наоборот необходимо импортировать данные из SQLite, то есть что бы данные из SQLite попали в «Скаду».
О каких данных для импорта идет речь?
Kazam
УчастникДобрый день! OPC сервер от логики, скажем так не очень надежный.
Попробуйте наш драйвер, ссылка: Драйвер СПТ941Он еще и архивы умеет читать и писать их в базу данных PostgresSQL =)
Kazam
УчастникВозможно штатный клиент умеет OPC HDA потому тегов и больше, а Rapid Scada HDA не умеет..
Руками добавить можно, добавьте пару тегов через обзор. Затем закройте коммуникатор и откройте соответствующий файл KpOpc_Num.xml в директории Config.
Там увидите как добавить теги, просто скопируйте и откорректируйте строки =)Kazam
УчастникВсем привет )
Насколько удалось смоделировать:
Scada 2 — передает данные каналов на Scada 1
1.
на Scada 2 останавливаем ScadaServer — каналы на Scada 1 зависают и через некоторое время Stat становиться в положение 5 (недостоверно).2.
на Scada 2 останавливаем ScadaComm и ооочень долго ждем когда статус каналов упадет в 5 …А как хочется чтобы было так:
для распределения нагрузки, быстрые контроллеры (с малым периодом опроса) вынесены на Slave сервер и их каналы предполагается выгружать в Master.
Оператор сидя за схемой должен понимать, насколько достоверны данные отображаемые на схеме. Ведь если у него показывает условно value=10 а коммуникатор давно уже остановлен (по разным причинам), это не есть гут.
Благодарю за ответ =)
Kazam
УчастникВ нескольких проектах делал на схеме динамический рисунок в виде красный\зеленый круг.
А в свойство забивал какой-нить регистр контроллера который всегда имеет константу (например версия прибора и тд). Соответственно если он равен прочерк — то красный рисунок.А в драйверах своей разработки, добавлял сигнал в КП который как раз фиксировал наличие связи (или с использованием переменной lastcomm или собственный велосипед в зависимости от условий)
Kazam
УчастникДобрый день! Конечно в обоих =)))
Ведь даже в Scada Server есть фильтр по каналам при просмотре срезов =)Kazam
УчастникПроверил, при отключении Линий связи команды передаются быстрее, но это не наш метод (с).
Впихнуть все КП в пределы нескольких линий не могу -( Ибо все 500 объектов опрашиваются раз в минуту -) Иначе будут задержки в опросе.
Михаил, как еще можно ускорить работы Коммуникатора? есть ли мысли? -
АвторСообщения