Eclipse Milo: How to use the Discovery Feature of OPC UA?
I have some questions about the discovery feature of OPC UA:
- How do I register a OPC UA-server on a discovery-server? Is this
only possible, if the manufacturer provides something like a web
interface for that, or is there a standardized way to do it? - How do I register a OPC UA-server, which is created with milo, on a discovery-server?
- Is it possible to disable the discovery-server which is automatically started with a milo opc ua-server?
- How to get informations about the registered servers with milo?
opc-ua milo
add a comment |
I have some questions about the discovery feature of OPC UA:
- How do I register a OPC UA-server on a discovery-server? Is this
only possible, if the manufacturer provides something like a web
interface for that, or is there a standardized way to do it? - How do I register a OPC UA-server, which is created with milo, on a discovery-server?
- Is it possible to disable the discovery-server which is automatically started with a milo opc ua-server?
- How to get informations about the registered servers with milo?
opc-ua milo
add a comment |
I have some questions about the discovery feature of OPC UA:
- How do I register a OPC UA-server on a discovery-server? Is this
only possible, if the manufacturer provides something like a web
interface for that, or is there a standardized way to do it? - How do I register a OPC UA-server, which is created with milo, on a discovery-server?
- Is it possible to disable the discovery-server which is automatically started with a milo opc ua-server?
- How to get informations about the registered servers with milo?
opc-ua milo
I have some questions about the discovery feature of OPC UA:
- How do I register a OPC UA-server on a discovery-server? Is this
only possible, if the manufacturer provides something like a web
interface for that, or is there a standardized way to do it? - How do I register a OPC UA-server, which is created with milo, on a discovery-server?
- Is it possible to disable the discovery-server which is automatically started with a milo opc ua-server?
- How to get informations about the registered servers with milo?
opc-ua milo
opc-ua milo
edited Jan 8 at 6:29
Bashdi
asked Jan 2 at 7:58
BashdiBashdi
205
205
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
- How do I register a OPC UA-server on a discovery-server? Is this only possible, if the manufacturer provides something like a web interface for that, or is there a standardized way to do it?
The manufacturer needs to support the discovery profile. The OPC UA Specification Part 11 (freely avalable after registration: https://opcfoundation.org/developer-tools/specifications-unified-architecture/) describes this in more detail.
There are three main concepts for OPC UA Discovery:
Local Discovery Server (LDS):
A client needs to know the IP address of the LDS server and then calls theRegisterServer
orRegisterServer2
Service via OPC UA.Local Discovery Server with Multicast Extension (LDS-ME):
Server and client use standardized mDNS multicast queries to find other OPC UA instances in the network. As soon as an LDS-ME server announces itself, a normal OPC UA server knows the IP address and it callsRegisterServer
orRegisterServer2
Global Discovery Server (GDS):
For large systems there may be multiple subnets where multicast queries do not work. A GDS is an enterprise wide discovery server which also supports certificate management.
- How do I register a OPC UA-server, which is created with milo, on a discovery-server?
Eclipse Milo does not fully support the discovery features. It basically supports LDS. There is currently an open PR by myself, but unfortunately it is not merged yet: https://github.com/eclipse/milo/pull/89
- Is it possible to disable the discovery-server which is automatically started with a milo opc ua-server?
Since Eclipse Milo does not support discovery services by default, it is not automatically started. Anyways you can define, which services are supported by adding or removing the corresponding service set. Check out this line:
stackServer.addServiceSet((DiscoveryServiceSet) sessionManager);
https://github.com/eclipse/milo/pull/89/files#diff-6eb416ef6889e36b34b34e32cb78b823R122
- How to get informations about the registered servers with milo?
After another server registered itself via RegisterServer
or RegisterServer2
a client can retrieve the list of registered servers via two service calls.
FindServers
returns the list of registered servers, which calledRegisterServer
orRegisterServer2
FindServersOnNetwork
is only supported for LDS-ME servers and additionally returns the servers which announced themselves via an mDNS message but did not yet register.
If you are looking for an open source stack which fully implements the LDS and LDS-ME features, you can have a look at the open62541 project, which is a C/C++ implementation of OPC UA:
https://github.com/open62541/open62541
The GDS feature is currently under development for the open62541 stack.
(Disclaimer: I'm one of the core devs at open62541)
Additional ressources:
You can also check out a paper I wrote about the OPC UA LDS-ME Discovery feature and a specific use-case titled OPC UA for Plug & Produce: Automatic Device Discovery using LDS-ME (https://mediatum.ub.tum.de/node?id=1375255)
11:16:05.177 [main] INFO o.e.milo.opcua.stack.server.tcp.UaTcpStackServer - opc.tcp://127.0.0.1:12686/MiloTest/discovery bound to 127.0.0.1:12686 [None/None]
This line in my log confuses me. I thought this is a discovery server
– Bashdi
Jan 2 at 10:31
2
That's the discovery endpoint. All servers need to have an endpoint with no security that a client can call FindServers and GetEndpoints on. Appending/discovery
to the base endpoint URL is the standard location defined by the spec.
– Kevin Herron
Jan 2 at 12:54
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54003001%2feclipse-milo-how-to-use-the-discovery-feature-of-opc-ua%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
- How do I register a OPC UA-server on a discovery-server? Is this only possible, if the manufacturer provides something like a web interface for that, or is there a standardized way to do it?
The manufacturer needs to support the discovery profile. The OPC UA Specification Part 11 (freely avalable after registration: https://opcfoundation.org/developer-tools/specifications-unified-architecture/) describes this in more detail.
There are three main concepts for OPC UA Discovery:
Local Discovery Server (LDS):
A client needs to know the IP address of the LDS server and then calls theRegisterServer
orRegisterServer2
Service via OPC UA.Local Discovery Server with Multicast Extension (LDS-ME):
Server and client use standardized mDNS multicast queries to find other OPC UA instances in the network. As soon as an LDS-ME server announces itself, a normal OPC UA server knows the IP address and it callsRegisterServer
orRegisterServer2
Global Discovery Server (GDS):
For large systems there may be multiple subnets where multicast queries do not work. A GDS is an enterprise wide discovery server which also supports certificate management.
- How do I register a OPC UA-server, which is created with milo, on a discovery-server?
Eclipse Milo does not fully support the discovery features. It basically supports LDS. There is currently an open PR by myself, but unfortunately it is not merged yet: https://github.com/eclipse/milo/pull/89
- Is it possible to disable the discovery-server which is automatically started with a milo opc ua-server?
Since Eclipse Milo does not support discovery services by default, it is not automatically started. Anyways you can define, which services are supported by adding or removing the corresponding service set. Check out this line:
stackServer.addServiceSet((DiscoveryServiceSet) sessionManager);
https://github.com/eclipse/milo/pull/89/files#diff-6eb416ef6889e36b34b34e32cb78b823R122
- How to get informations about the registered servers with milo?
After another server registered itself via RegisterServer
or RegisterServer2
a client can retrieve the list of registered servers via two service calls.
FindServers
returns the list of registered servers, which calledRegisterServer
orRegisterServer2
FindServersOnNetwork
is only supported for LDS-ME servers and additionally returns the servers which announced themselves via an mDNS message but did not yet register.
If you are looking for an open source stack which fully implements the LDS and LDS-ME features, you can have a look at the open62541 project, which is a C/C++ implementation of OPC UA:
https://github.com/open62541/open62541
The GDS feature is currently under development for the open62541 stack.
(Disclaimer: I'm one of the core devs at open62541)
Additional ressources:
You can also check out a paper I wrote about the OPC UA LDS-ME Discovery feature and a specific use-case titled OPC UA for Plug & Produce: Automatic Device Discovery using LDS-ME (https://mediatum.ub.tum.de/node?id=1375255)
11:16:05.177 [main] INFO o.e.milo.opcua.stack.server.tcp.UaTcpStackServer - opc.tcp://127.0.0.1:12686/MiloTest/discovery bound to 127.0.0.1:12686 [None/None]
This line in my log confuses me. I thought this is a discovery server
– Bashdi
Jan 2 at 10:31
2
That's the discovery endpoint. All servers need to have an endpoint with no security that a client can call FindServers and GetEndpoints on. Appending/discovery
to the base endpoint URL is the standard location defined by the spec.
– Kevin Herron
Jan 2 at 12:54
add a comment |
- How do I register a OPC UA-server on a discovery-server? Is this only possible, if the manufacturer provides something like a web interface for that, or is there a standardized way to do it?
The manufacturer needs to support the discovery profile. The OPC UA Specification Part 11 (freely avalable after registration: https://opcfoundation.org/developer-tools/specifications-unified-architecture/) describes this in more detail.
There are three main concepts for OPC UA Discovery:
Local Discovery Server (LDS):
A client needs to know the IP address of the LDS server and then calls theRegisterServer
orRegisterServer2
Service via OPC UA.Local Discovery Server with Multicast Extension (LDS-ME):
Server and client use standardized mDNS multicast queries to find other OPC UA instances in the network. As soon as an LDS-ME server announces itself, a normal OPC UA server knows the IP address and it callsRegisterServer
orRegisterServer2
Global Discovery Server (GDS):
For large systems there may be multiple subnets where multicast queries do not work. A GDS is an enterprise wide discovery server which also supports certificate management.
- How do I register a OPC UA-server, which is created with milo, on a discovery-server?
Eclipse Milo does not fully support the discovery features. It basically supports LDS. There is currently an open PR by myself, but unfortunately it is not merged yet: https://github.com/eclipse/milo/pull/89
- Is it possible to disable the discovery-server which is automatically started with a milo opc ua-server?
Since Eclipse Milo does not support discovery services by default, it is not automatically started. Anyways you can define, which services are supported by adding or removing the corresponding service set. Check out this line:
stackServer.addServiceSet((DiscoveryServiceSet) sessionManager);
https://github.com/eclipse/milo/pull/89/files#diff-6eb416ef6889e36b34b34e32cb78b823R122
- How to get informations about the registered servers with milo?
After another server registered itself via RegisterServer
or RegisterServer2
a client can retrieve the list of registered servers via two service calls.
FindServers
returns the list of registered servers, which calledRegisterServer
orRegisterServer2
FindServersOnNetwork
is only supported for LDS-ME servers and additionally returns the servers which announced themselves via an mDNS message but did not yet register.
If you are looking for an open source stack which fully implements the LDS and LDS-ME features, you can have a look at the open62541 project, which is a C/C++ implementation of OPC UA:
https://github.com/open62541/open62541
The GDS feature is currently under development for the open62541 stack.
(Disclaimer: I'm one of the core devs at open62541)
Additional ressources:
You can also check out a paper I wrote about the OPC UA LDS-ME Discovery feature and a specific use-case titled OPC UA for Plug & Produce: Automatic Device Discovery using LDS-ME (https://mediatum.ub.tum.de/node?id=1375255)
11:16:05.177 [main] INFO o.e.milo.opcua.stack.server.tcp.UaTcpStackServer - opc.tcp://127.0.0.1:12686/MiloTest/discovery bound to 127.0.0.1:12686 [None/None]
This line in my log confuses me. I thought this is a discovery server
– Bashdi
Jan 2 at 10:31
2
That's the discovery endpoint. All servers need to have an endpoint with no security that a client can call FindServers and GetEndpoints on. Appending/discovery
to the base endpoint URL is the standard location defined by the spec.
– Kevin Herron
Jan 2 at 12:54
add a comment |
- How do I register a OPC UA-server on a discovery-server? Is this only possible, if the manufacturer provides something like a web interface for that, or is there a standardized way to do it?
The manufacturer needs to support the discovery profile. The OPC UA Specification Part 11 (freely avalable after registration: https://opcfoundation.org/developer-tools/specifications-unified-architecture/) describes this in more detail.
There are three main concepts for OPC UA Discovery:
Local Discovery Server (LDS):
A client needs to know the IP address of the LDS server and then calls theRegisterServer
orRegisterServer2
Service via OPC UA.Local Discovery Server with Multicast Extension (LDS-ME):
Server and client use standardized mDNS multicast queries to find other OPC UA instances in the network. As soon as an LDS-ME server announces itself, a normal OPC UA server knows the IP address and it callsRegisterServer
orRegisterServer2
Global Discovery Server (GDS):
For large systems there may be multiple subnets where multicast queries do not work. A GDS is an enterprise wide discovery server which also supports certificate management.
- How do I register a OPC UA-server, which is created with milo, on a discovery-server?
Eclipse Milo does not fully support the discovery features. It basically supports LDS. There is currently an open PR by myself, but unfortunately it is not merged yet: https://github.com/eclipse/milo/pull/89
- Is it possible to disable the discovery-server which is automatically started with a milo opc ua-server?
Since Eclipse Milo does not support discovery services by default, it is not automatically started. Anyways you can define, which services are supported by adding or removing the corresponding service set. Check out this line:
stackServer.addServiceSet((DiscoveryServiceSet) sessionManager);
https://github.com/eclipse/milo/pull/89/files#diff-6eb416ef6889e36b34b34e32cb78b823R122
- How to get informations about the registered servers with milo?
After another server registered itself via RegisterServer
or RegisterServer2
a client can retrieve the list of registered servers via two service calls.
FindServers
returns the list of registered servers, which calledRegisterServer
orRegisterServer2
FindServersOnNetwork
is only supported for LDS-ME servers and additionally returns the servers which announced themselves via an mDNS message but did not yet register.
If you are looking for an open source stack which fully implements the LDS and LDS-ME features, you can have a look at the open62541 project, which is a C/C++ implementation of OPC UA:
https://github.com/open62541/open62541
The GDS feature is currently under development for the open62541 stack.
(Disclaimer: I'm one of the core devs at open62541)
Additional ressources:
You can also check out a paper I wrote about the OPC UA LDS-ME Discovery feature and a specific use-case titled OPC UA for Plug & Produce: Automatic Device Discovery using LDS-ME (https://mediatum.ub.tum.de/node?id=1375255)
- How do I register a OPC UA-server on a discovery-server? Is this only possible, if the manufacturer provides something like a web interface for that, or is there a standardized way to do it?
The manufacturer needs to support the discovery profile. The OPC UA Specification Part 11 (freely avalable after registration: https://opcfoundation.org/developer-tools/specifications-unified-architecture/) describes this in more detail.
There are three main concepts for OPC UA Discovery:
Local Discovery Server (LDS):
A client needs to know the IP address of the LDS server and then calls theRegisterServer
orRegisterServer2
Service via OPC UA.Local Discovery Server with Multicast Extension (LDS-ME):
Server and client use standardized mDNS multicast queries to find other OPC UA instances in the network. As soon as an LDS-ME server announces itself, a normal OPC UA server knows the IP address and it callsRegisterServer
orRegisterServer2
Global Discovery Server (GDS):
For large systems there may be multiple subnets where multicast queries do not work. A GDS is an enterprise wide discovery server which also supports certificate management.
- How do I register a OPC UA-server, which is created with milo, on a discovery-server?
Eclipse Milo does not fully support the discovery features. It basically supports LDS. There is currently an open PR by myself, but unfortunately it is not merged yet: https://github.com/eclipse/milo/pull/89
- Is it possible to disable the discovery-server which is automatically started with a milo opc ua-server?
Since Eclipse Milo does not support discovery services by default, it is not automatically started. Anyways you can define, which services are supported by adding or removing the corresponding service set. Check out this line:
stackServer.addServiceSet((DiscoveryServiceSet) sessionManager);
https://github.com/eclipse/milo/pull/89/files#diff-6eb416ef6889e36b34b34e32cb78b823R122
- How to get informations about the registered servers with milo?
After another server registered itself via RegisterServer
or RegisterServer2
a client can retrieve the list of registered servers via two service calls.
FindServers
returns the list of registered servers, which calledRegisterServer
orRegisterServer2
FindServersOnNetwork
is only supported for LDS-ME servers and additionally returns the servers which announced themselves via an mDNS message but did not yet register.
If you are looking for an open source stack which fully implements the LDS and LDS-ME features, you can have a look at the open62541 project, which is a C/C++ implementation of OPC UA:
https://github.com/open62541/open62541
The GDS feature is currently under development for the open62541 stack.
(Disclaimer: I'm one of the core devs at open62541)
Additional ressources:
You can also check out a paper I wrote about the OPC UA LDS-ME Discovery feature and a specific use-case titled OPC UA for Plug & Produce: Automatic Device Discovery using LDS-ME (https://mediatum.ub.tum.de/node?id=1375255)
answered Jan 2 at 9:47
Stefan ProfanterStefan Profanter
3,29432452
3,29432452
11:16:05.177 [main] INFO o.e.milo.opcua.stack.server.tcp.UaTcpStackServer - opc.tcp://127.0.0.1:12686/MiloTest/discovery bound to 127.0.0.1:12686 [None/None]
This line in my log confuses me. I thought this is a discovery server
– Bashdi
Jan 2 at 10:31
2
That's the discovery endpoint. All servers need to have an endpoint with no security that a client can call FindServers and GetEndpoints on. Appending/discovery
to the base endpoint URL is the standard location defined by the spec.
– Kevin Herron
Jan 2 at 12:54
add a comment |
11:16:05.177 [main] INFO o.e.milo.opcua.stack.server.tcp.UaTcpStackServer - opc.tcp://127.0.0.1:12686/MiloTest/discovery bound to 127.0.0.1:12686 [None/None]
This line in my log confuses me. I thought this is a discovery server
– Bashdi
Jan 2 at 10:31
2
That's the discovery endpoint. All servers need to have an endpoint with no security that a client can call FindServers and GetEndpoints on. Appending/discovery
to the base endpoint URL is the standard location defined by the spec.
– Kevin Herron
Jan 2 at 12:54
11:16:05.177 [main] INFO o.e.milo.opcua.stack.server.tcp.UaTcpStackServer - opc.tcp://127.0.0.1:12686/MiloTest/discovery bound to 127.0.0.1:12686 [None/None]
This line in my log confuses me. I thought this is a discovery server– Bashdi
Jan 2 at 10:31
11:16:05.177 [main] INFO o.e.milo.opcua.stack.server.tcp.UaTcpStackServer - opc.tcp://127.0.0.1:12686/MiloTest/discovery bound to 127.0.0.1:12686 [None/None]
This line in my log confuses me. I thought this is a discovery server– Bashdi
Jan 2 at 10:31
2
2
That's the discovery endpoint. All servers need to have an endpoint with no security that a client can call FindServers and GetEndpoints on. Appending
/discovery
to the base endpoint URL is the standard location defined by the spec.– Kevin Herron
Jan 2 at 12:54
That's the discovery endpoint. All servers need to have an endpoint with no security that a client can call FindServers and GetEndpoints on. Appending
/discovery
to the base endpoint URL is the standard location defined by the spec.– Kevin Herron
Jan 2 at 12:54
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54003001%2feclipse-milo-how-to-use-the-discovery-feature-of-opc-ua%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown