Стартовая страница › Форумы › Новые идеи › Коммуникатор — новые возможности ?
- В этой теме 20 ответов, 3 участника, последнее обновление 3 года, 10 месяцев назад сделано Mikhail.
-
АвторСообщения
-
24.05.2020 в 14:47 #16202RomirosУчастник
Вещь конечно прикольная, тоже как-то понадобилась. Например есть модель прибора, у которого можно запросить карту параметров и автоматически построить конфигурацию КП (типы трубопроводов, их количество, а так же параметры в зависимости от типа трубопровода). Но получается на время конфигурации нужно остановить линию связи, чтобы получить доступ к порту. Т.е. остановить сбор данных. Плюс Вы правильно сказали что настраивать получится только с локальной машины. С другой стороны доступ к Connection был бы полезен при работе с БД, чтобы не создавать самостоятельное подключение к базе для конфигурации (хотя по сути это несколько строчек кода).
24.05.2020 в 14:54 #16204manjey73УчастникНу, на удаленной машине мой драйвер тоже может построить конфигурацию шаблона. Я таким способом как раз и вышел из ситуации. Если в шаблоне параметр init = true то в Session проводится опрос и построение переменных в шаблоне, потом init сбрасывается с выводом в лог о перезапуске линии. После перезапуска линии, если init = false уже выполняется код формирования тегов и собственно сам опрос и передача в Сервер данных.
Вот только скан там не запустишь, не, можно конечно и там код написать, но это будет достаточно долго или может быть долгим процессом.
В принципе, если у нас линия связи не Сом порт, а ethernet, то отключив на рабочем ПК с Коммуникатором линию, к ней можно подключиться другим ПК, где все локально, выполнить сканирование и все что необходимо, а потом просто передать конфигурацию на уделенную машину.25.05.2020 в 17:29 #16230MikhailМодераторВариант реализации такой функции:
1. На КП отправляется команда сканирования линии — такой механизм есть. Команду можно отправить в том числе через Администратор на удалённый Коммуникатор, если прописан канал управления.
2. Результат сканирования выгружается в файл. Этот файл уже придётся скопировать руками и открыть через свой пользовательский интерфейс драйвера.
Если добавить в Администратор и Агент функцию выкачивания произвольного файла из экземпляра Rapid SCADA (что в принципе не очень сложно), то будет ещё проще.25.05.2020 в 20:36 #16234manjey73УчастникМожно выкачивать сразу в папку проекта. Вполне подойдет такой вариант например.
По сути код окна свойств может полностью иметь те же методы, что и KpLogic, только при открытии этого окна иметь возможность остановить работу линии в штатном исполнении KpXXXLogic и потом запустить его дубль со своим кодом исполнения.Единственное, перенаправлять лог WriteToLog либо в это окно, либо иметь возможность его видеть в том же окне, что и при работе драйвера в штатном режиме.
- Этот ответ был изменен 3 года, 10 месяцев назад от manjey73.
28.05.2020 в 08:43 #16277manjey73УчастникВ общем более менее определился с сохранением данных для КП. На словах опишу.
Коммуникатор — Линия связи — Параметры линии связи — Пользовательские.
Добавить колонку для номера КП. Если ячейка пуста, то «Наименование»-«Значение» относится к CustomParams без изменений для всей линии. Если заполнена то к отдельному КП, то есть например к KpCustomParams соответствующего КП. Механизмы те же. Доступ из кода Формы для заполнения значения из кода драйвера. вызов из кода OnAddedToCommLine и OnCommLineStart по команде GetKpParams() аналогично CustomParams, из добавления линии параметр отображается в kp00X.txt, из старта линии параметр скрыт от глаз.
По KpCommonProps все аналогично существующему, типа дубль как есть <string, object> с теми же механизмами, хоть double, хоть int и т.д., если сделали override string, то отображается в kp00X.txt если нет, не отображается. Только связь только с конкретным КП.
По командам GetKpProps() соответственно получаем инфу, пуст не пуст, если не пуст то можем обрабатывать данные.Команды для записи типа SaveKpParams() и SaveKpProps() для записи из кода.
Арбитром записи соответственно выступает сам Коммуникатор между КП, линиями и складывает это все в один файл xml по линиям и КП (в принципе номера КП достаточно, они ведь всегда разные)… Только с нюансом.
Коммуникатор не должен удалять записи отключенных КП и списка КП если отключена вся линия. Должен продолжать хранить эти записи. Удалять из списка должен только при удалении КП или всей линии связи.
Сделать настройку авто сохранения xml.bak в минутах. В случае если поврежден основной, выполнять загрузку из bak и выводить в лог эту информацию…Для связи между КП при устройстве с одним адресом или на одной линии т.д. вполне достаточно существующих механизмов CustomParams и CommonProps
ну, надеюсь описал подробно для понимания…
28.05.2020 в 18:13 #16290MikhailМодераторКоммуникатор не должен удалять записи отключенных КП и списка КП если отключена вся линия.
Да, это важный момент.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.