Стартовая страница › Форумы › Взаимодействие с устройствами › OPC UA несколько регистров одной командой
- В этой теме 11 ответов, 2 участника, последнее обновление 9 месяцев, 2 недели назад сделано
Mikhail.
-
АвторСообщения
-
26.09.2022 в 17:07 #25212
scmember
УчастникДобрый день!
есть линия 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 реализовать очередь, которая будет группировать поступающие команды для отправки одним пакетом.
Доработки можно заказать или реализовать самостоятельно. -
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.