2015-01-20 6 views
1

Я новичок в OPC и должен разработать простой OPC-сервер с использованием Java для проверки соединения с OPC-клиентом, извлечения данных через сервер из базы данных и возврата данных к клиенту OPC. Я испытываю трудности с пониманием стандартов OPC UA и был бы признателен, если бы кто-нибудь мог подчеркнуть стандарты/вещи, которые следует учитывать в отношении стандарта в серверном приложении Java OPC UA. Например, для веб-сервера стандартным является HTTP-заголовок. Поэтому, получая HTTP-запрос, я могу расшифровать заголовок HTTP для контента и создать заголовок ответа в правильном формате, чтобы браузер клиента мог понять.Стандарт OPC UA для написания простого Java-клиента/сервера

+0

Создание сервера UA с нуля может быть сложным и трудоемким, вы считали, что используете Java UA SDK, например https://opcfoundation.org/developer-tools/developer-kits-unified -architecture/Java-стеки и выборка-приложение /? –

+0

Yup, я просмотрел его и заглянул в opcua4j в код google. Просто интересно, извлекаю ли данные данные из базы данных, желательно ли загружать все данные из таблицы при запуске сервера или запрашивать таблицу только тогда, когда это необходимо клиенту? – user1746050

+0

Было бы предпочтительнее загружать данные из базы данных каждый раз, когда клиент делает запрос, чтобы уменьшить использование памяти сервера UA, но если у вас небольшое количество неизменяемых данных, вы можете их загрузить один раз и сохранить в UA сервер. Обычно я загружаю данные конфигурации, такие как имя переменной, min/max, unit и т. Д., Но каждый раз извлекаю значения переменных из базы данных. –

ответ

0

Для того, чтобы быть точно, запрос на чтение имеет опцию MaxAge:

Параметр MaxAge используется для направления сервера для доступа к значению из базового источника данных, такие как устройство, если его копия данных является старше, чем указано maxAge. Если сервер не может выполнить требуемый максимальный возраст, он возвращает свое «лучшее усилие», а не отклоняет запрос. (OPC UA Spec Part 4)