Стартовая страница › Форумы › Взаимодействие с устройствами › OPC UA несколько регистров одной командой
- В этой теме 11 ответов, 2 участника, последнее обновление 1 год, 2 месяца назад сделано Mikhail.
-
АвторСообщения
-
26.09.2022 в 17:07 #25212scmemberУчастник
Добрый день!
есть линия OPC UA, на ней КП с несколькими десятками тегов типа «команда ТУ» для передачи параметров техпроцесса и командой старта выполнения задачи. Есть программа на с#, которая использует класс Scada.Client.ServerComm и метод SendStandardCommand для работы с КП. Цикл работы устройства при этом получается с заметной паузой на обмен данными, пока ему в цикле одна за другой передаются команды на выставление нужных параметров, и потом команда на выполнение. Как можно убыстрить такой обмен?
27.09.2022 в 14:45 #25229MikhailМодераторДобрый день!
Необходим журнал линии связи, в котором будут видно использование OPC-сервера, а также укажите, в какой момент происходят задержки.
16.02.2023 в 17:09 #27376scmemberУчастникНапример вот:
2023-02-16 16:04:59 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: A2_Command_Angle = -11,17528 OK! 2023-02-16 16:04:59 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: A2_Command_Velocity = 30 OK! 2023-02-16 16:04:59 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: A3_Command_Velocity = 0 OK! 2023-02-16 16:04:59 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: CommandWorkMoving = True OK! 2023-02-16 16:04:59 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: SendCommandToBuffer = True OK! 2023-02-16 16:04:59 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: A2_Command_Angle = -14,00076 OK! 2023-02-16 16:04:59 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: A3_Command_Angle = 29,74607 OK! 2023-02-16 16:04:59 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: A4_Command_Angle = -15,74532 OK! 2023-02-16 16:04:59 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: A3_Command_Velocity = 30 OK! 2023-02-16 16:04:59 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: A4_Command_Velocity = 30 OK! 2023-02-16 16:04:59 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: CommandHammer = 1 OK! 2023-02-16 16:04:59 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: SendCommandToBuffer = True OK! 2023-02-16 16:05:00 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: A2_Command_Angle = -11,17528 OK! 2023-02-16 16:05:00 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: A3_Command_Angle = 33,5142 OK! 2023-02-16 16:05:00 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: A4_Command_Angle = -22,33892 OK! 2023-02-16 16:05:00 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: CommandHammer = 0 OK! 2023-02-16 16:05:00 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: CommandWorkMoving = False OK! 2023-02-16 16:05:00 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: SendCommandToBuffer = True OK! 2023-02-16 16:05:00 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: A2_Command_Angle = -11,68486 OK! 2023-02-16 16:05:00 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: A3_Command_Velocity = 0 OK! 2023-02-16 16:05:00 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: A4_Command_Velocity = 0 OK! 2023-02-16 16:05:00 Команда КП 2 "Контроллер command", тип: KpOpcUa Отправка значения OPC-серверу: SendCommandToBuffer = True OK!
А таких тегов у КП тысяча, в сумме они уходят около 20 секунд…
17.02.2023 в 10:24 #27388MikhailМодераторБыла раньше похожая тема на форуме.
Проблема в том, что поток команд слишком большой. Команды имеют более высокий приоритет, чем опрос, поэтому опрос на линии связи не успевает происходить.Нужно замедлить опрос того устройства, которое является источником данных, на которое настроены триггеры в модуле автоуправления. Какой драйвер для используется для этого устройства?
И 2-й вопрос, по какому протоколу обмена данными работает то устройство, которое подключено через OPC UA?
17.02.2023 в 10:33 #27391scmemberУчастникя бы сказал, что в нашем случае основная проблема — что данные на кп уходят потоком команд, а не одной командой. Допустим, если бы обмениваться с кп по modbus, то эти 1000 тегов уходили бы одной сетевой посылкой, и обмен был бы на порядки быстрее…
KP работает с драйвером KpOpcUa, по ethernet
17.02.2023 в 11:44 #27394MikhailМодераторПоэтому я и задал 2-й вопрос из поста выше.
17.02.2023 в 15:51 #27396scmemberУчастникKP работает с драйвером KpOpcUa, по ethernet
вот ответил на вопрос 2…
17.02.2023 в 18:54 #27408MikhailМодераторВстроенный OPC UA-сервер на самом устройстве?
18.02.2023 в 12:37 #27416scmemberУчастникда, непосредственно на контроллере
18.02.2023 в 16:06 #27418MikhailМодераторДопустим, драйвер OPC UA можно доработать, чтобы он отправлял сразу несколько значений на запись. Но кроме драйвера потребуется разработать модуль Сервера, который будет упаковывать несколько значений, изменившиеся за заданный (короткий) период времени, в одну команду.
Из того, что можно сделать без доработки — замедлить опрос устройства, которое является источником данных.
19.02.2023 в 14:45 #27425scmemberУчастникспасибо за советы.
насчет вот этого:
драйвер OPC UA можно доработать, чтобы он отправлял сразу несколько значений на запись.
можете чуть более подробно посоветовать?
20.02.2023 в 11:18 #27434MikhailМодераторИмел ввиду, что самый простой путь решения проблемы — замедлить опрос устройства, которое является источником данных.
Более сложный путь требует доработки существующих модулей. Возможны различные походы к доработке:
1. В драйвере OPC UA реализовать команду отправки сразу нескольких значений. Также потребуется разработать модуль Сервера, который будет отслеживать изменения и отправлять такие команды Коммуникатору.
2. В драйвере OPC UA реализовать очередь, которая будет группировать поступающие команды для отправки одним пакетом.
Доработки можно заказать или реализовать самостоятельно. -
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.