PDA

Просмотр полной версии : Управление потоками данных



KHoups
25.05.2018, 06:17
Добрый день!

Подскажите, пожалуйста, по управлению потоками данных с двух PLC в MasterScada:

В проекте на уровне OPCServer имеется 2 группы PLC: PLC1 и PLC2, то есть ведущий и ведомый контроллеры (для определения данных состояний имеются две переменные беззнакового целового типа, счетчик вообщем). Появляются как бы два потока данных:

1) Первый поток: чтение в скаде диагностических тегов с обоих контроллеров. Ну и запись настроек тоже в оба контроллера. Здесь наверное просто забирать данные в скаду и писать отдельно в два тега? То есть записали данные в один PLC, записали те же данные во второй PLC. Или
есть контрол, посредством которого я буду писать данные сразу в два тега?

2) Второй поток: чтение данных от датчиков, сигнализаций защит и т.п., только с ведущего контроллера.
Каким образом организовать мажорирование сигналов? На уровне системы или объекта...Имеются в MasterScada стандартные средства для решения этой задачи?

3) Не загрузит ли MasterScad'у такая структура с разнопоточностью? Если конечно второй поток вобще можно организовать без сторонних
средств...


С уважением, Катерина.

SCADAMaster
25.05.2018, 09:37
Вообще это странная схема резервирования, и штатно мы ее не поддерживаем - для объединения нужно будет использовать проектные решения.
Как делается правильно можно посмотреть на примере Modbus Universal. Добавляется один узел, один контроллер. У узла включается резервирование, задаются IP. Далее при пропадании связи происходит переключение с основного на резервный узел. Ну или с помощью скрипта по любому алгоритму.
Какие контроллеры у вас используются? Они поддерживают Modbus TCP?

KHoups
25.05.2018, 10:42
Под проектными решениями вы подразумеваете официальное обращение в компанию Инсат для разработки модуля под такую схему резервирования, которая допустим, будет использоваться только у нас?


Как делается правильно можно посмотреть на примере Modbus Universal.
Да, контроллеры поддерживают протокол Modbus TCP.
То есть в самом MasterOPC Universal Modbus реализовать резервирование? Будет своеобразная группа тегов Redundancy, которые я буду забирать в скаду только с ведущего?

А если в компьютер добавить выбрать "Masterlink", добавить 2 модбас устройства....так тоже не получится получить третью группу тегов, только от ведущего....там смотрю резервирование не настраивается.

Схема замудренная, потому что в первую очередь думала можно обойтись только OPC, не прибегая к Modbus, но и не совсем понимаю как в мастерскада с мажорированием тегов от двух контроллеров с идентичным составом тегов (хоть по OPC, хоть по Modbus), и как привязывать теги в объекты проекта, когда мне надо брать диагностику с обоих PLC, а остальные только от ведущего комплекта. В GateWay Codesys вроде можно так настроить, в котором будет происходить мажорирование тегов, и в скаду будут уходить только теги ведущего. Там создается третья группа тегов Redundancy. Но в этом варианте много задержек по времени накладывается. Что ни есть хорошо.

Таким образом, самым удобным вариантом остается использование MasterOPC Universal Modbus? Об этом написано в методических пособиях? Конкретно по резервированию, которое вы указываете
Добавляется один узел, один контроллер. У узла включается резервирование, задаются IP. Далее при пропадании связи происходит переключение с основного на резервный узел

И если реализовывать всё-таки схему мажорирования сигналов через скрипт, мне же его тоже надо будет тогда исполнять до попадания в мастерскаду? В том же самом MasterOPC Universal Modbus?

SCADAMaster
25.05.2018, 11:28
Под проектными решениями вы подразумеваете официальное обращение в компанию Инсат для разработки модуля под такую схему резервирования, которая допустим, будет использоваться только у нас?

Нет. Вам нужно будет на уровне проекта обрабатывать два источника входных данных, и на выход выдавать итоговый.
Вариантов много, но все они хуже чем использование ОРС с нормальным резервированием.

KHoups
25.05.2018, 11:48
В проекте с количеством сигналов много превышающим 2,5К точек
обрабатывать два источника входных данных, и на выход выдавать итоговый. лучше конечно использовать стандартные средства, которые уже есть и используются вами. Да и к тому же 20% от всех тегов мне бы опрашивать с 20мсек-циклом...срабатывание всяких защит.
Поэтому и прошу у вас совета, так как в документации ничего не нашла по мажорированию сигналов, может быть не все методички просмотрела.

У нас контроллеры CPM723 Fastwel I/O.

С уважением, Катерина

SCADAMaster
25.05.2018, 12:05
В проекте с количеством сигналов много превышающим 2,5К точек лучше конечно использовать стандартные средства, которые уже есть и используются вами.
Нет готовых средств для этого.
Это делается проектными решениями. Например скрипт, который принимает 2 комплекса сигналов, а на выход дает 1.

KHoups
25.05.2018, 12:16
Это делается проектными решениями. Например скрипт, который принимает 2 комплекса сигналов, а на выход дает 1.

Спасибо!
С резервированием контроллеров тоже выходит, что не получится, так как в списке доступных контроллеров нет CMP723.

SCADAMaster
25.05.2018, 12:30
С резервированием контроллеров тоже выходит, что не получится, так как в списке доступных контроллеров нет CMP723.
Поясните. В каком списке?

KHoups
25.05.2018, 14:46
В списке "Система - Компьютер1 - Вставить контроллер..."


Как делается правильно можно посмотреть на примере Modbus Universal. Добавляется один узел, один контроллер. У узла включается резервирование, задаются IP. Далее при пропадании связи происходит переключение с основного на резервный узел.

я решила, что Вы говорите про резервирование на уровне контроллеров, которое доступно в самом проекте, если используются контроллеры из того списка. Нашла, где в Modbus Universal включается резервирование. Во вкладке резервные каналы надо поставить канал в True, тогда становится доступным ввод второго ip. ))

А это резервирование через "Система - Компьютер1 - Вставить контроллер..." похоже настраивает только работу самих контроллеров, а не OPC данных

В процессе работы резервированного комплекса каждому из контроллеров присваивается
один из двух взаимоисключающих статуса:
• Основной контроллер выполняет прикладной проект и осуществляет управление
объектом автоматизации;
• Резервный контроллер выполняет прикладной проект (периодически запрашивает
данные у основного контроллера), но не производит управление объектом.

Так-то у нас резервирование обоих полублоков уже настроено на нижнем уровне, при отказе того или иного. А вот два потока opc данных не разрулены до попадания в мастерскаду.

Буду пробовать скриптом их разрулить.

С уважением, Катерина

SCADAMaster
25.05.2018, 15:00
В списке "Система - Компьютер1 - Вставить контроллер..."

Это для контроллеров с MPLC - не ваш случай




Под Modbus Universal вы же имеете ввиду MAsterOPC Universal Modbus? Но там же нет параметра включить резервирование узла, когда он создается...поэтому я решила, что Вы говорите про резервирование на уровне контроллеров, которое доступно в самом проекте, если используются контроллеры из того списка.

См. приложение.
Версия должна быть Trial или Unl

KHoups
25.05.2018, 15:10
См. приложение.
Версия должна быть Trial или Unl
Спасибо большое! Я немножко вперед вас обновила свое сообщение последнее, так как всё-таки нашла эти вкладки.

Можно ещё один вопрос на сегодня?))
Если я воспользуюсь Modbus Universal, добавлю два узла, одно устройство с всеми переменными, то в мастер скаду буду забирать эту группу переменных только от узла master? а когда произойдет переключение между узлами, то данные будут идти от резервного узла, который был slave, а станет master. Так?

SCADAMaster
25.05.2018, 15:15
Почему два узла то?
Один узел, один контроллер, один набор переменных.
Просто на уровне узла в ОРС будут решаться все вопросы резервирования, а скада будет получать уже готовые данные и не заботится о резервирвировании

KHoups
25.05.2018, 15:22
добавлю два узла
В списке объектов один узел. А второй я имела ввиду тот, который у меня будет как "резервный канал". Я в вас в заблуждение ввела, что его тоже узлом назвала.
Добавлю один узел, одно устройство. Для узла включу канал 1 в true, настрою его IP. Добавлю список тегов. Дальше уже пойду в мастерскаду и буду получать данные только от ведущего.

SCADAMaster
25.05.2018, 15:24
Добавлю один узел, одно устройство. Для узла включу канал 1 в true, настрою его IP. Добавлю список тегов. Дальше уже пойду в мастерскаду и буду получать данные только от ведущего.
Да.
А при отказе от резеврного

KHoups
25.05.2018, 15:29
А при отказе от резеврного
Не поняла...при отказе от резервного?

KHoups
25.05.2018, 15:33
Поставить галочку Автоматическое переключение, чтобы обратно вернулся на ip первый, при отказе резервного канала, если он был матером? Поставлю. ))

SCADAMaster
25.05.2018, 15:37
Не поняла...при отказе от резервного?
Отказал основной (пропала связь) - будет идти опрос резервного.
Также можно вручную выполнять переключение на резервный, или используя какой то алгоритм (анализ какого тега) - с помощью специальных функций встроенных скриптов

KHoups
25.05.2018, 15:46
Большое Вам спасибо! Всё стало более ясным. Испробую на деле и этот вариант. Он кажется более надежным, чем вариант с опросом двух входов и выдачу на выход значения переменной от ведущего контроллера, если бы ещё тегов было не так много.

С уважением, Катерина