Вы не вошли.

 Поиск | Регистрация | Вход 

19.01.2022 16:13:02
#1

Участник
Здесь с 19.01.2022
Сообщений: 3

Lcard to Matlab OPC

Стоит задача передавать данные с каналов модуля LTR212M-1 в Matlab через OPC-сервер.
Подключаюсь к серверу, демонстрационный клиент показывает сигналы.
Клиент OPC матлаба подключается к серверу, но при попытке развернуть значения items в дереве ServerNamespace, клиент висит с выдачей в командное окно:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at com.mathworks.toolbox.opc.ServerNamespaceClient.addNodesToTree(ServerNamespaceClient.java:905)
    at com.mathworks.toolbox.opc.ServerNamespaceClient.updateSNSTree(ServerNamespaceClient.java:991)
    at com.mathworks.toolbox.opc.ServerNamespaceClient.updateGuiSNSFn(ServerNamespaceClient.java:999)
    at com.mathworks.toolbox.opc.ServerNamespaceClient.access$200(ServerNamespaceClient.java:25)
    at com.mathworks.toolbox.opc.ServerNamespaceClient$Guisnsfn.matlabEvent(ServerNamespaceClient.java:1272)
    at com.mathworks.jmi.MatlabMCR$AWTReplyEvent.run(MatlabMCR.java:1718)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

С чем это может быть связано? Заранее спасибо!

20.01.2022 15:33:00
#2

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,254

Re: Lcard to Matlab OPC

Немного поэкспериментировал с Matlab и работе его OPC-клиента с нашим сервером.

У меня эта проблема возникает, когда вложенность дерева элементов в Namespace больше 3. Если же в настройках L-Card OPC создать дерево элементов вручную, так, чтобы уровень вложенности был бы не больше 3-х (т.е. максимум ветвь -> ветвь -> узлы значений, например  LTR212 -> CH1 -> AC), то проблемы не возникает. Также несколько странно идет работа с русскими названиями в элементах, при обзоре Matlab их видит, но при добавлении в группу эти названия становятся пустыми (хотя при этом на работу не влияет), поэтому лучше также использовать только английские имена.

Не совсем понятно в чем именно проблема, в клиенте Matlab или сервере, с другими OPC-клиентами до этого такой проблемы не возникало. Как появится время, попробую более детально посмотреть, как эти обращения, на которых Matlab зависает, выглядят со стороны сервера, нет ли там какой-то особенности.

Пока предлагаю попробовать создать свое дерево в настройках OPC-сервера, удовлетворяющее указанным критериям.

20.01.2022 20:13:08
#3

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,254

Re: Lcard to Matlab OPC

Кажется проблему с зависанием нашел, не совсем корректно обрабатывалась определенная комбинация вызовов по обзору адресного пространства (другие клиенты обходили его иначе, поэтому ранее эта проблема не попадалась. Попробуйте версию https://www.lcard.ru/download/lcard-opc … 1.0.14.exe, будет ли работать?

Но с русскими буквами все равно Matlab не совсем корректно работает, так что лучше либо вручную задавать названия элементов дерева на английском, либо в конфигураторе перед генерацией дерева включить английский язык.

21.01.2022 10:05:20
#4

Участник
Здесь с 19.01.2022
Сообщений: 3

Re: Lcard to Matlab OPC

Спасибо большое! Попробую как доберусь

24.01.2022 14:18:08
#5

Участник
Здесь с 19.01.2022
Сообщений: 3

Re: Lcard to Matlab OPC

Да, с новой версией клиент работает, данные передаются. Русскими символами не пользуюсь. Спасибо!!!

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25
Факс: +7 (495) 785-95-14

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск