Descoberta Local OPC UA
Os servidores de descoberta permitem que os clientes OPC UA obtenham detalhes sobre um ou mais servidores OPC UA, a partir de um único ponto.
Existem dois tipos de servidores de descoberta OPC UA:
- Servidores de descoberta local (LDS)
- Servidores de descoberta global (GDS)
Este artigo mostrará como registrar um servidor OPC UA com um LDS e como um cliente OPC UA pode usar esse LDS para se conectar ao servidor OPC UA.
Introdução
Como o nome sugere, um Local Discovery Server (LDS) pode ser executado no mesmo dispositivo que um ou mais servidores OPC UA. Por exemplo, é possível instalar um ou mais servidores OPC UA em um dispositivo PLCnext Control, juntamente com o servidor OPC UA que acompanha o PLCnext Runtime. Se um LDS também estiver instalado nesse dispositivo PLCnext Control, todos os servidores OPC UA nesse dispositivo poderão se registrar no LDS. Em seguida, um cliente OPC UA remoto pode simplesmente consultar o LDS para obter os detalhes de todos os servidores OPC UA em execução nesse dispositivo PLCnext Control e usar esses detalhes para conectar-se diretamente a um ou mais desses servidores OPC UA.
Um pouco confuso, também é possível que um servidor OPC UA se registre com um LDS que está sendo executado em um remoto máquina. Dessa forma, um único LDS pode ser usado por um cliente OPC UA para descobrir todos os servidores OPC UA executados em uma rede inteira de dispositivos.
Há uma boa introdução aos servidores de descoberta OPC UA neste artigo da Unified Automation:
https://documentation.unified-automation.com/uasdkdotnet/2.5.2/html/L2UaDiscoveryConnect.html
Plano de fundo
Antes de seguir as etapas deste artigo, você deve entender:
- Configuração básica do servidor OPC UA.
- Como conectar um cliente ao servidor OPC UA em um dispositivo PLCnext Control.
- Como os certificados de segurança são armazenados e gerenciados em um dispositivo PLCnext Control.
Procedimento
Para este exemplo, a configuração da rede é a seguinte:
OPC UA Server: AXC F 2152 FW 2020.6.1
IP address: 192.168.1.10
DNS name: axc-f-2152-1
Local Discovery Server: Windows 10 PC
IP address: 192.168.1.42
DNS name: mypc.mycompany.com
OPC UA Client: Debian 10 PC
IP address: 192.168.1.3
Esses endereços IP e nomes DNS serão usados ao longo deste artigo, mas é claro que você deve modificá-los para seu próprio aplicativo.
Configurar nomes DNS
Se sua rede não inclui um servidor DNS, edite o
hosts
arquivo em cada dispositivo. O arquivo hosts está localizado no seguinte diretório:
- Windows:
C:\Windows\System32\drivers\etc\
- Linux:
/etc/
Adicione as seguintes novas entradas DNS (substituindo os endereços IP e nomes DNS para seu aplicativo):
No PLC, adicione o LDS:
192.168.1.42 mypc.mycompany.com
Na máquina LDS, adicione o PLC:
192.168.1.10 axc-f-2152-1
Na máquina OPC UA Client, adicione o LDS e o PLC:
192.168.1.42 mypc.mycompany.com
192.168.1.10 axc-f-2152-1
Verifique se todas as entradas estão corretas fazendo ping nos nomes DNS (não os endereços IP) que você configurou em cada dispositivo.
Instale o servidor de descoberta local
A OPC Foundation fornece um Local Discovery Server na forma de um executável baseado em Windows. Este pode ser baixado gratuitamente (após o registro) nesta página:
https://opcfoundation.org/developer-tools/samples-and-tools-unified-architecture/local-discovery-server-lds/
Baixe e instale este LDS na máquina Windows.
Instale o cliente OPC UA
Este exemplo usa o UaExpert da Unified Automation:
https://www.unified-automation.com/products/development-tools/uaexpert.html
Baixe e instale o UaExpert na máquina OPC UA Client.
Localizar certificados
Os vários componentes OPC UA – Servidor, Cliente e LDS – precisam confiar uns nos outros para garantir comunicações seguras. A confiança pode ser alcançada trocando certificados públicos – isto é, colocando o certificado público de cada componente no “trust store” para componentes que precisam confiar nele.
Você pode encontrar o certificado público para cada componente da seguinte maneira:
Servidor OPC UA
O certificado do dispositivo pode ser encontrado no armazenamento de identidade “OPC UA autoassinado”, por padrão. Isso será diferente se você estiver usando seu próprio certificado.
O certificado do servidor OPC UA pode ser baixado da página Web Based Management do PLC. O certificado deve então ser convertido do formato PEM para o formato DER para ser usado pelos outros componentes. Há um grande número de ferramentas gratuitas que podem ser usadas para essa conversão, incluindo o
openssl
ferramenta de linha de comando linux. Um exemplo do comando bash que você pode usar é:openssl x509 -outform der -in OPC\ UA-self-signed_certificate.crt -out uaserver.der
Servidor SUD
Por padrão, o certificado para o LDS está localizado aqui:
C:\ProgramData\OPC Foundation\UA\pki\own\certs\ualdscert.der
Cliente OPC UA
- No UaExpert, selecione o item de menu Configurações -> Gerenciar certificados.
- Clique no botão "Copiar certificado do aplicativo para...".
- Salve o certificado em algum lugar acessível.
Copiar certificados para Trust Stores
Copie cada certificado (no formato .der) para os armazenamentos confiáveis dos outros dois componentes.
O armazenamento confiável para cada componente pode ser localizado da seguinte maneira:
Servidor OPC UA (PLC)
O armazenamento confiável é a pasta
/opt/plcnext/Security/TrustStores/Empty/trusted
LDS
O armazenamento confiável é a pasta
C:\ProgramData\OPC Foundation\UA\pki\trusted\certs
Cliente OPC UA (UaExpert)
- No UaExpert, selecione o item de menu Configurações -> Gerenciar certificados.
- Clique no botão “Abrir local do certificado”. Este é o armazenamento confiável para UaExpert.
Verifique todos os firewalls
No mínimo, verifique se o firewall no servidor LDS permite tráfego na porta 4840.
Configurar o Servidor OPC UA no PLCnext Engineer
No PLCnext Engineer, na janela de configuração do OPC UA:
- Verifique se:
- O nome DNS é o mesmo que o configurado anteriormente.
- "Visibilidade de variáveis" não "Nenhuma".
- Ativar registro de descoberta
- Defina o URL do servidor como
opc.tcp://mypc.mycompany.com:4840
(substituindo o nome DNS da sua máquina SUD)
Escreva o projeto PLCnext Engineer para o PLC.
O PLC agora tentará automaticamente registrar o servidor OPC UA no LDS.
Descubra e conecte-se ao servidor OPC UA
- No UaExpert, clique no botão + (mais) na barra de ferramentas.
- Clique com o botão direito do mouse na ramificação "Local" da visualização em árvore e selecione "Editar URL de descoberta".
- Na caixa de texto, digite
opc.tcp://mypc.mycompany.com:4840
(substituindo o nome DNS da sua máquina SUD) e clique em OK.
O servidor OPC UA deve aparecer na ramificação Local da árvore. Agora você pode usar esses detalhes para se conectar ao servidor OPC UA da maneira usual.
Solução de problemas
- O arquivo de registro SUD está localizado aqui:
C:\ProgramData\OPC Foundation\UA\Discovery\opcualds.log
É possível alterar o LogLevel (e muitos outros parâmetros) no seguinte arquivo:C:\ProgramData\OPC Foundation\UA\Discovery\ualds.ini
LogLevel = debug
fornece as informações de registro mais detalhadas. Após alterar as configurações do LDS, pode ser necessário reiniciar o LDS através do console de “Serviços” do Windows. O nome de exibição do LDS é “OPC UA Local Discovery Server”. - Observe que o LDS pode retornar a URL do servidor OPC UA com
.local.
anexado ao nome DNS. Esse nome DNS deve ser resolvido por um servidor mDNS multicast. Se esse nome DNS não puder ser resolvido, uma mensagem de erro contendo a URL aparecerá na janela de log do UaExpert. Está além do escopo deste tutorial descrever como instalar e configurar um servidor DNS multicast para resolver nomes DNS com um.local.
sufixo.
Conclusão
Obviamente, não há muito benefício em usar um LDS quando há apenas um servidor OPC UA em uma rede. Mas para redes que incluem um grande número de servidores OPC UA, um LDS oferece uma maneira conveniente de navegar e conectar-se a esses servidores.
Tecnologia industrial
- Variáveis globais, locais e não locais do Python
- A resposta da descoberta aos desafios da cadeia de suprimentos
- Escopo variável em C++
- Java 10 - Inferência de tipo de variável local
- Quais são os benefícios de trabalhar com um fabricante de metal local?
- O processo de descoberta e por que é importante para seus projetos de desenvolvimento?
- Sistemas locais x globais para controle de produção
- Como as empresas B2B podem impulsionar seu SEO
- Certificado OPC UA “Push Management”
- Como chamar um Bloco Funcional de um Cliente OPC UA usando um Modelo de Informação