OPC UA Client configureren op PLCnext Control:stap-voor-stap handleiding
Firmwareversie 2023.0 bevat een langverwachte OPC UA Client-component. Het PLCnext Infocentrum bevat een goede technische referentie voor deze functie.
Deze tutorial is een stapsgewijze handleiding die laat zien hoe u de OPC UA-client in een PLCnext Control-apparaat zo kunt configureren dat deze gegevens uitwisselt met een OPC UA-server.
Je hebt nodig:
- Een PLCnext Control-apparaat met firmwareversie 2023.0 of hoger dat fungeert als OPC UA Client. Als u de firmware op uw PLCnext Control-apparaat moet upgraden, kunt u de procedure volgen die wordt weergegeven in het Info Center.
- PLCnext Engineer versie 2023.3 of hoger.
- Een OPC UA-server. Dit artikel gebruikt een tweede PLCnext Control-apparaat als OPC UA-server, maar u kunt hetzelfde PLCnext Control-apparaat gebruiken dat u gebruikt om de Client te hosten, of als alternatief een OPC UA-server van derden die (bijvoorbeeld) op een Windows-pc draait. Voor servers van derden moet u uitzoeken hoe u de onderstaande 'server'-stappen voor uw server kunt aanpassen.
- UaExpert van Unified Automation, die nodig is om informatie te krijgen over OPC UA Server-tags die we zullen gebruiken in de configuratie van onze eigen OPC UA Client.
Een van de belangrijkste punten om te onthouden bij het configureren van OPC UA-communicatie is dat, om veiligheidsredenen, de OPC UA Client en de OPC UA Server elkaar moeten vertrouwen. Daarom moeten beveiligingscertificaten worden uitgewisseld tussen de client- en serverapparaten. Deze procedure omvat het springen tussen het clientapparaat en het serverapparaat, wat een beetje verwarrend kan zijn. Als u suggesties heeft om de procedure eenvoudiger te maken (zonder de veiligheidscontroles uit te schakelen!), kunt u deze in de opmerkingen toevoegen.
Procedure
OPC UA Server-apparaat
-
Open de Web Based Management (WBM)-site door naar het IP-adres van de PLC te bladeren.
-
Selecteer de Systeemservices item uit het configuratiemenu.
-
Activeer de OPC UA-server service, als deze nog niet is ingeschakeld.
-
Druk op Toepassen en opnieuw opstarten indien nodig.
-
Open PLCnext Engineer.
-
Maak een nieuw PLCnext Engineer-project aan met behulp van de sjabloon voor uw PLCnext Control-apparaat.
-
Stel het IP-adres van de PLC in het PLCnext Engineer-project in.
-
Op de OPC UA-server configuratiepagina:
-
stel de DNS-naam/IP-adres in aan de DNS-naam of het IP-adres van de PLC, afhankelijk van of de OPC UA-client toegang krijgt tot de server met behulp van een DNS-naam of het IP-adres van de server. Deze informatie wordt opgenomen in het OPC UA Server-beveiligingscertificaat. Veel OPC UA-clients zullen het servercertificaat weigeren als deze informatie in het certificaat niet overeenkomt met de server-URL.
-
stel Zichtbaarheid van variabelen in naar Gemarkeerd . Dit betekent dat alle variabelen die zijn gemarkeerd met het OPC-attribuut toegankelijk zijn via de OPC UA-server.
-
-
Maak variabelen die door de OPC UA-server worden weergegeven. Zorg ervoor dat de OPC voor deze variabelen is het selectievakje aangevinkt. In het onderstaande voorbeeld zijn twee variabelen aangemaakt in het hoofdprogramma.
-
Voeg logica toe om de uitgangsvariabele te wijzigen wanneer een nieuwe ingangswaarde wordt ontvangen. In dit voorbeeld voerde het Main-programma de volgende code uit:
Server_Data_Out := Server_Data_In + 1; -
Schrijf en start het project.
Houd er rekening mee dat PLCnext Engineer vanaf versie 2025.0 een "browse"-functie bevat, waarmee variabele gegevens in de OPC UA Client kunnen worden aangemaakt. Als die bladerfunctie wordt gebruikt, is het niet nodig om UaExpert te gebruiken om informatie over servervariabelen te verkrijgen en kunnen de volgende drie stappen worden overgeslagen.
-
Gebruik UaExpert om verbinding te maken met de OPC UA Server met behulp van de PLC-gebruikersnaam en -wachtwoord. U zou een waarschuwing moeten zien dat het certificaat "Niet vertrouwd" is, maar er zouden geen andere waarschuwingen moeten zijn.
-
Vertrouw het servercertificaat permanent of alleen voor deze sessie.
-
Noteer voor elke servervariabele de naam van de Node-ID en de Naamruimte voor die variabele.
-
Open opnieuw de WBM-site voor de Server-PLC.
-
Selecteer Certificaatauthenticatie item uit het menu Beveiliging.
-
Selecteer de Identiteitswinkels tabblad.
-
Download het certificaat van de OPC UA-zelfondertekend [server] Identiteitsopslag. Het sleutelpaar hoeft niet te worden gedownload.
OPC UA Client-apparaat
-
Open de Web Based Management (WBM)-site door naar het IP-adres van de PLC te bladeren.
-
Selecteer de Systeemservices item uit het configuratiemenu.
-
Activeer de OPC UA-client service, als deze nog niet is ingeschakeld.
-
Druk op Toepassen en opnieuw opstarten indien nodig.
-
Wanneer het opnieuw opstarten is voltooid, logt u opnieuw in op de WBM-site en selecteert u Certificaatverificatie item uit het menu Beveiliging.
-
Selecteer de Trustwinkels tabblad.
-
Voeg de OPC UA-zelfondertekend toe [server]-certificaat (eerder gedownload) naar de Trust Store met de naam OPC UA Client . Nu vertrouwt de OPC UA-client het beveiligingscertificaat dat door de OPC UA-server wordt gebruikt om zijn identiteit te verifiëren. Deze stap moet elke keer dat het servercertificaat verandert, worden herhaald.
-
Selecteer de Identiteitswinkels tabblad .
-
Download het certificaat van de OPC UA Client zelfondertekend Identiteitswinkel. Het sleutelpaar hoeft niet te worden gedownload.
OPC UA Server-apparaat
-
Open de Web Based Management (WBM)-site door naar het IP-adres van de PLC te bladeren.
-
Selecteer Certificaatauthenticatie item uit het menu Beveiliging.
-
Selecteer de Trustwinkels tabblad.
-
Voeg de OPC UA Client zelfondertekend toe certificaat (eerder gedownload) naar de Trust Store met de naam OPC UA-configurable . Nu vertrouwt de OPC UA-server het beveiligingscertificaat dat door de OPC UA-client wordt gebruikt om zijn identiteit te verifiëren. Deze stap moet elke keer dat het clientcertificaat verandert, worden herhaald.
OPC UA Client-apparaat
-
Open PLCnext Engineer.
-
Maak een nieuw PLCnext Engineer-project aan met behulp van de sjabloon voor uw PLCnext Control-apparaat. Als u voor zowel de OPC UA Client als de OPC UA Server hetzelfde apparaat gebruikt, wordt hetzelfde PLCnext Engineer-project gebruikt.
-
Stel het IP-adres van de PLC in het PLCnext Engineer-project in.
-
Alleen vereist voor PLC's met firmwareversies vóór 2023.6: Op de OPC UA-server configuratiepagina, stel Zichtbaarheid van variabelen in naar Gemarkeerd . Ja, het lijkt vreemd om deze OPC UA Server-instelling te vereisen voor de OPC UA Client. Dit is opgelost in firmwareversies 2023.6 en hoger.
-
Maak variabelen die worden verbonden met variabelen in de OPC UA Server. Alleen vereist voor PLC's met firmwareversies vóór 2023.6: Zorg ervoor dat de OPC voor deze variabelen is het selectievakje aangevinkt (het selectievakje hoeft niet te zijn aangevinkt voor PLC's met firmwareversie 2023.6 of hoger).
In het onderstaande voorbeeld zijn twee variabelen aangemaakt in het hoofdprogramma.
-
Voeg op het tabblad OPC UA Client Connections één server en twee variabelengroepen toe, zoals hieronder weergegeven.
De server-URL, gebruikersnaam en wachtwoord moeten worden gewijzigd zodat ze passen bij de OPC UA-server die u gebruikt.
-
Voeg in de variabelengroep 'Abonneren' één variabeletoewijzing toe, zoals hieronder weergegeven.
Daarbij wordt de waarde automatisch van de externe variabele (op de OPC UA Server) naar de lokale variabele in het PLCnext Engineer-project overgedragen.
-
Voeg in de variabelengroep "Schrijven" één variabeletoewijzing toe, zoals hieronder weergegeven.
Daarbij wordt de waarde automatisch van de lokale variabele in het PLCnext Engineer-project naar de externe variabele (op de OPC UA Server) overgedragen.
-
Schrijf en start het PLCnext Engineer-project.
-
Wijzig in de foutopsporingsmodus de waarde van de variabele
Client_Data_out. De waarde wordt naar de variabeleServer_Data_Ingeschreven op de OPC UA-server. Die waarde wordt door de server verhoogd en naar de variabeleServer_Data_Outgeschreven . De waarde van die variabele wordt dan overgebracht naar de variabeleClient_Data_Inop de klant.
Het werkt niet?
Raadpleeg de probleemoplossingsgids in het PLCnext Info Center (onderaan de pagina).
Veelgestelde vragen
Vraag:Kan de client verbinding maken met een OPC UA-server met behulp van certificaat-/sleutelauthenticatie?
A:Nee, momenteel niet.
Vraag:Hoe slaat de OPC UA Client het serverwachtwoord op?
A:Op dit moment wordt het OPC UA Server-wachtwoord als leesbare tekst in het clientconfiguratiebestand opgeslagen, maar de PLCnext Runtime-ontwikkelaars werken aan een veiligere methode voor wachtwoordopslag.
Vraag:Kan ik kwaliteitsinformatie krijgen (bijvoorbeeld statuscode, tijdstempel) voor gegevens die worden gelezen van een OPC UA-server?
A:Momenteel niet, sorry.
Dit artikel is bijgewerkt op 24.03.2025 en bevat informatie over de functie Server Browse die nu beschikbaar is in PLCnext Engineer.
Bijlage:Op bestanden gebaseerde configuratie
De OPC UA Client-configuratie in PLCnext Engineer wordt in XML-formaat op de besturing opgeslagen. Voor applicaties die geen gebruik maken van PLCnext Engineer is het mogelijk om de OPC UA Client te configureren door de XML-configuratie direct op de controller te schrijven.
De configuratie die in dit voorbeeld is voorbereid, wordt weergegeven in de volgende XML-bestanden:
-
Eventuele vereiste wijzigingen in de standaard OPC UA Client-instellingen worden gedefinieerd in het bestand
/opt/plcnext/projects/current/Services/OpcUA/Modules/Client/client.module.config:<?xml version="1.0" encoding="utf-8" standalone="yes"?> <OpcUAClientModuleConfigurationDocument schemaVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.phoenixcontact.com/schema/opcuaclientmoduleconfig" xmlns="http://www.phoenixcontact.com/schema/opcuaclientmoduleconfig"> <Application> <CertificateStore> <SelfSignedIdentityStoreName>OPC UA Client self-signed</SelfSignedIdentityStoreName> <GivenIdentityStoreName>OPC UA Client</GivenIdentityStoreName> <TrustStoreName>OPC UA Client</TrustStoreName> </CertificateStore> <SessionSecurity> <ApplicationAuthentication>false</ApplicationAuthentication> <ApplicationUriCheck>true</ApplicationUriCheck> <CertificateHostnameCheck>true</CertificateHostnameCheck> <CertificateTimeCheck>true</CertificateTimeCheck> <CertificateIssuerTimeCheck>true</CertificateIssuerTimeCheck> <PasswordEncryptionCheck>true</PasswordEncryptionCheck> </SessionSecurity> <Timeouts> <SessionTimeout>1200000</SessionTimeout> <ConnectTimeout>5000</ConnectTimeout> <WatchdogTimeout>5000</WatchdogTimeout> <CallTimeout>10000</CallTimeout> </Timeouts> </Application> </OpcUAClientModuleConfigurationDocument> -
OPC UA Client-verbindingen worden gedefinieerd in het bestand
/opt/plcnext/projects/current/Services/OpcUA/Modules/Client/Configs/ clientconnections.xml:<?xml version="1.0" encoding="utf-8"?> <eUAClientConfigurationDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uax="http://opcfoundation.org/UA/2008/02/Types.xsd" xmlns="http://phoenixcontact.com/OpcUA/PLCnext/UAClientConfig/Types.xsd"> <eUAClientConfiguration> <Name>ClientConnectionsConfiguration</Name> <NamespaceArray> <uax:String>http://phoenixcontact.com/OpcUA/PLCnext/GlobalDataSpace/</uax:String> </NamespaceArray> <ServerConnections> <eUAClientServerConnection> <EncodingMask>3</EncodingMask> <Endpoint> <uax:EndpointUrl>opc.tcp://192.168.1.10:4840</uax:EndpointUrl> <uax:SecurityMode>Sign_2</uax:SecurityMode> <uax:SecurityPolicyUri>http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256</uax:SecurityPolicyUri> </Endpoint> <UserTokenType>UserName_1</UserTokenType> <UserName>admin</UserName> <Password>xxxxxxxx</Password> </eUAClientServerConnection> </ServerConnections> <VariableGroups> <eUAClientVariableGroup> <GroupType>Write_1</GroupType> <CycleTime>100</CycleTime> <NodeMappings> <eUAClientNodeMapping> <LocalVariable> <uax:Identifier>ns=1;s=Arp.Plc.Eclr/MainInstance.Client_Data_Out</uax:Identifier> </LocalVariable> <RemoteVariableDescriptor> <EncodingMask>2</EncodingMask> <ServerIndex>1</ServerIndex> <NodeId> <uax:Identifier>ns=1;s=Arp.Plc.Eclr/MainInstance.Server_Data_In</uax:Identifier> </NodeId> </RemoteVariableDescriptor> </eUAClientNodeMapping> </NodeMappings> </eUAClientVariableGroup> <eUAClientVariableGroup> <GroupType>Subscribe_0</GroupType> <CycleTime>100</CycleTime> <NodeMappings> <eUAClientNodeMapping> <LocalVariable> <uax:Identifier>ns=1;s=Arp.Plc.Eclr/MainInstance.Client_Data_In</uax:Identifier> </LocalVariable> <RemoteVariableDescriptor> <EncodingMask>2</EncodingMask> <ServerIndex>1</ServerIndex> <NodeId> <uax:Identifier>ns=1;s=Arp.Plc.Eclr/MainInstance.Server_Data_Out</uax:Identifier> </NodeId> </RemoteVariableDescriptor> </eUAClientNodeMapping> </NodeMappings> </eUAClientVariableGroup> </VariableGroups> </eUAClientConfiguration> </eUAClientConfigurationDocument>Dit bestand gebruikt de Naamruimte en Knooppunt-ID informatie die eerder is geregistreerd (met behulp van UaExpert) om te specificeren tot welke servervariabelen de client toegang zal krijgen.
-
Wijzig in het bovenstaande bestand het volgende zodat het bij uw toepassing past:
-
Het element
uax:EndpointUrlmoet het IP-adres (of DNS-naam) van uw OPC UA-server bevatten. -
De
UsernameenPasswordelementen moeten de inloggegevens bevatten die vereist zijn voor de OPC UA-server.
BELANGRIJK: In dit voorbeeld is dit de Node-ID strings in UaExpert bevatten de tekst
ns=6. In bovenstaand XML-bestand is dit gewijzigd naarns=1, omdat de parameter "namespace" (ns) is een index in de lijst met naamruimten op de lokale client . In dit voorbeeld de Naamruimte naam die werd gekopieerd van UaExpert is de eerste (en enige) naamruimte in de lijst met naamruimten in onzeclientconfig.xmlbestand. -
Na wijzigingen in de OPC UA Client-configuratiebestanden moet de PLCnext Runtime opnieuw worden gestart.
Industriële technologie
- Smart Tooling:hoe het contactloze beheersysteem van Haimer de productiekosten helpt verlagen
- Hoe om te gaan met de grootste productie-uitdagingen waarmee kleine en middelgrote fabrikanten worden geconfronteerd
- Hoe een stopcontact aan te sluiten? Bedradingsschema's voor stopcontacten
- American Wire Gauge “AWG” Calculator – AWG Maattabel &Tabel
- De productie-uitbreiding uitpakken - waarom steil en ondiep?
- Hoe zonnepanelen in serie-parallelle configuratie te bedraden?
- Intelligence as a Service:efficiënter werken in toeleveringsnetwerken
- De R/2nR DAC:Binary-Weighted-Input digitaal-naar-analoog converter
- Top 10 dingen die een vastgoedbeheerder moet doen voor 2017
- 48 Topbronnen voor inventaris- en activabeheer voor scholen en onderwijzers
- Kleur toevoegen aan 3D-geprinte onderdelen met schilderen en verven