Автор |
Сообщение |
Сообщение создано: 24. 12. 2012 [22:03]
|
Vasili
Vasili Pahutsa
Создатель темы
Зарегистрирован(а) с: 28.12.2011
Сообщения: 8
|
При подключении к Unified Automation OPC-UA Demo server последней версии чтение атрибутов проходит нормально, запись - не работает
То же самое при подключении к OPC-UA серверу контроллера br-automation.
UAExpert нормально пишет и в Demo-server и в контроллер
openscada 0.8.1 собрана из исходников редакция 1945
|
Сообщение создано: 25. 12. 2012 [08:37]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"Vasili" wrote:
При подключении к Unified Automation OPC-UA Demo server последней версии чтение атрибутов проходит нормально, запись - не работает
У меня запись на собственный OPC-UA сервер работает. На сторонние возможности проверить сейчас нет.
Включайте дебиг режим "-DOSC_DEBUG=5" для модуля OPC-UA и выясняйте.
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 25. 12. 2012 [11:30]
|
Vasili
Vasili Pahutsa
Создатель темы
Зарегистрирован(а) с: 28.12.2011
Сообщения: 8
|
Запись на собственный сервер и у меня работает. Это я в первую очередь проверил.
Подскажите, пожалуйста, подробней, как именно -DOSC_DEBUG включается, что-то не могу найти про это на сайте
|
Сообщение создано: 25. 12. 2012 [12:20]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"Vasili" wrote:
Подскажите, пожалуйста, подробней, как именно -DOSC_DEBUG включается, что-то не могу найти про это на сайте
Собирайте указанный модуль командой:
$ make CXXFLAGS="-g -O2 -DOSC_DEBUG=5"
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 25. 12. 2012 [13:34]
|
Vasili
Vasili Pahutsa
Создатель темы
Зарегистрирован(а) с: 28.12.2011
Сообщения: 8
|
Собрал и запустил модуль в DEBUG-режиме
При попытке записи булевой переменной в UADemoServer вижу следующее:
1|/test_demo/sub_UI/mod_QTCfg/ | root| Установлен '/test_demo/sub_DAQ/mod_OPC_UA/cntr_UADemo/prm_par1/%2fval%2f4_SimulationActivate' в '0'!
TEST 13: Request 'Write':
4d 53 47 46 76 00 00 00 a3 11 61 00 01 00 00 00
b1 01 00 00 7f 01 00 00 01 00 a1 02 02 00 00 85
11 61 00 34 fe 4a 8a 91 e2 cd 01 7e 01 00 00 00
00 00 00 ff ff ff ff b8 0b 00 00 00 00 00 01 00
00 00 03 04 00 12 00 00 00 53 69 6d 75 6c 61 74
69 6f 6e 41 63 74 69 76 61 74 65 0d 00 00 00 ff
ff ff ff 0d 01 00 02 fe 4a 8a 91 e2 cd 01 02 fe
4a 8a 91 e2 cd 01
TEST 13a: Response 'Write':
4d 53 47 46 40 00 00 00 a3 11 61 00 01 00 00 00
b2 01 00 00 7f 01 00 00 01 00 a4 02 68 07 43 8a
91 e2 cd 01 7e 01 00 00 00 00 00 00 00 00 00 00
00 00 00 00 01 00 00 00 00 00 73 80 00 00 00 00
однако мне это ни о чем не говорит.
|
Сообщение создано: 25. 12. 2012 [14:20]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"Vasili" wrote:
однако мне это ни о чем не говорит.
Ну так, разбирайтесь, раз Вам нужно.
А вообще говорит он такое:
4D 53 47 46 - SecureChannel message (MSGF).
40 00 00 00 - Message chunk size 64
a3 11 61 00 - Secure channel identifier
01 00 00 00 - Symmetric Algorithm Security Header : TokenId
> Sequence header
b2 01 00 00 - Sequence number
7f 01 00 00 - RequestId
01 00 a4 02 - TypeId (676 - WriteResponse)
>> Body
>>> RespondHeader
68 07 43 8a 91 e2 cd 01 - timestamp
7e 01 00 00 - requestHandle
00 00 00 00 - StatusCode
00 - serviceDiagnostics
00 00 00 00 - stringTable
00 00 00 - Extensible parameter.NodeId (0)
>>> results []
01 00 00 00 - Numbers 1
>>>> value (StatusCode)
00 - Encoding Mask (0)
00 00 73 80 - OpcUa_BadWriteNotSupported
>>> diagnosticInfos []
00 00 00 00
Что означает, что сервер ни разу не поддерживает запись о чём и сообщает. Собственно код данной ошибки (0x80730000) должно быть видно в атрибуте "Error".
Насколько мне помнится ни один из доступных свободно OPC-UA тестовых серверов запись и не поддерживал, почему у меня даже полной разборки операции "Write" не сохранилось, а поддержку я её реализовал в собственном OPC-UA сервере OpenSCADA.
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 25. 12. 2012 [16:25]
|
Vasili
Vasili Pahutsa
Создатель темы
Зарегистрирован(а) с: 28.12.2011
Сообщения: 8
|
Атрибут "Error" не показывает никакой ошибки при записи и вообще ведет себя некорректно - если отключить сервер во время опроса, потом включить, то "0x80ab0000:Ошибка удалённого хоста" так и висит до перезапуска openscada, не помогает ни выкл/вкл параметра, ни выкл/вкл контроллера.
UADemoServer поддерживает запись на сегодняшний день - по крайней мере, запись из UAExpert работает нормально.
Аналогичная ситуация (00 00 73 80 в логе) при записи на OPC-UA сервер br-automation, который я и хочу подружить с openscada.
Сервер br-automation из UAExpert пишется нормально.
|
Сообщение создано: 25. 12. 2012 [17:03]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"Vasili" wrote:
Атрибут "Error" не показывает никакой ошибки при записи и вообще ведет себя некорректно - если отключить сервер во время опроса, потом включить, то "0x80ab0000:Ошибка удалённого хоста" так и висит до перезапуска openscada, не помогает ни выкл/вкл параметра, ни выкл/вкл контроллера.
Значит ошибка записи затирается при чтении атрибута.
Перезапуск объекта контроллера должен помогать.
"Vasili" wrote:
UADemoServer поддерживает запись на сегодняшний день - по крайней мере, запись из UAExpert работает нормально.
Аналогичная ситуация (00 00 73 80 в логе) при записи на OPC-UA сервер br-automation, который я и хочу подружить с openscada.
Сервер br-automation из UAExpert пишется нормально.
У меня в наличии живых устройств с OPC-UA не было поэтому так и работает.
В целом-же OPC-UA сильно закрыт и хорошо если документ со спецификацией удаётся получить.
Реальная же его работа подчас отличается от спецификации, следовательно без наличия реального оборудования многих функций не реализуешь и не проверишь.
Вывод: Если Вам этот протокол сейчас нужен то Вам и разбираться или финансировать эти разборки удалённо.
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 09. 01. 2013 [20:32]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"roman" wrote:
У меня в наличии живых устройств с OPC-UA не было поэтому так и работает.
В целом-же OPC-UA сильно закрыт и хорошо если документ со спецификацией удаётся получить.
Реальная же его работа подчас отличается от спецификации, следовательно без наличия реального оборудования многих функций не реализуешь и не проверишь.
На данный момент от UaExpert у меня только работает линуксовый клиент и ни одного сервера.
Виндовый демосервер под Wine просто зависает, ранние версии ещё работали.
Линуксовые тестовые сервера из пакета "Unified Automation UA SDK ANSI C Professional" просто и сразу останавливаются с ошибкой:
UA Server: Main stopped due to ERROR! (0x80050000)
Так что OPC UA в OpenSCADA ещё очень чудно работает, по сравнению со всем этим. :)
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 09. 01. 2013 [22:34]
|
Vasili
Vasili Pahutsa
Создатель темы
Зарегистрирован(а) с: 28.12.2011
Сообщения: 8
|
Спасибо за помощь, Роман. Ситуация ясна.
Под windows UaExpert работает нормально с реальным оборудованием, имеющимся у меня.
Буду пытаться самостоятельно разобраться с OPC-UA и с кодом OpenSCADA.
Это пока единственный нормальный вариант подключить контроллер B&R к OpenSCADA.
Вскрывать собственный закрытый протокол B&R кажется менее реальным. По OPC-UA хоть кое-что можно найти в сети.
[Сообщение редактировалось 1 раз(а), в последний раз 09.01.2013 в 22:36.]
|