Conectați OPC UA la Beckhoff TwinCAT
| Produs | Beckhoff TwinCAT |
|---|---|
| Categorie | PLC |
| Rol OPC UA | Client și server |
TwinCAT expune OPC UA prin funcția TF6100: un server, un client și un gateway, configurate pe țintă, nu în programul PLC. Simbolurile sunt publicate prin pragme de atribute în cod, ceea ce face ca interfața publicată să fie o decizie de compilare. TF6100 este o funcție licențiată, așa că confirmați licențierea cu Beckhoff.
Înainte de a începe
- Funcția OPC UA TF6100 instalată pe țintă și licențiată pentru aceasta. Licențierea pe țintele Beckhoff este o barieră reală; stabiliți de ce licență aveți nevoie și cum se aplică înainte de punerea în funcțiune.
- Un proiect TwinCAT pe care îl puteți compila și activa, pentru că publicarea simbolurilor este controlată de atribute din sursă și intră în vigoare la activare.
- Acces la configurația serverului OPC UA de pe țintă, fie prin unealta Configurator, fie prin fișierul de configurare al serverului, plus acces la sistemul de fișiere pentru directorul lui PKI, pentru lucrul cu certificate.
- O decizie privind portul de runtime pe care îl expuneți. O țintă TwinCAT găzduiește frecvent mai multe runtime-uri PLC, iar fiecare este un endpoint ADS separat pe care serverul îl poate publica.
Configurarea
- Instalați și licențiați TF6100 pe țintăFuncția trebuie să fie prezentă și licențiată pe mașina care va servi, iar pe un IPC Beckhoff sau pe un controler embedded aceasta este chiar controlerul, nu laptopul de inginerie. Verificați starea licenței înainte de a depana orice altceva.
- Marcați simbolurile pe care doriți să le publicațiPublicarea se face prin opt-in, cu pragme de atribut în declarație, de exemplu {attribute 'OPC.UA.DA' := '1'} deasupra unei variabile, a unei structuri sau a unei liste întregi de variabile globale, cu un atribut de acces asociat care controlează dacă simbolul poate fi citit, scris sau ambele. Aplicarea pragmei pe un GVL sau pe o structură publică membrii acesteia, iar așa păstrați interfața mică și ușor de revizuit.
- Recompilați și activați configurațiaPragmele sunt compilate în informația de simboluri, așa că este necesară o recompilare și o activare înainte ca spațiul de adrese să se schimbe. Un inginer care editează pragme și apoi se întreabă de ce arborele de browse nu s-a schimbat a sărit aproape întotdeauna peste acest pas.
- Îndreptați serverul spre runtime și verificați spațiul de numeConfigurați ce dispozitiv ADS și ce port de runtime publică serverul, apoi navigați prin arborele rezultat. Citiți NamespaceArray și înregistrați URI-ul spațiului de nume al runtime-ului; acel URI, nu indexul, este ceea ce trebuie să conțină configurația clientului dumneavoastră.
- Finalizați schimbul de certificate pe țintăServerul păstrează un director PKI cu folderele obișnuite trusted, issuer, rejected și CRL. Conectați-vă o dată cu clientul dumneavoastră, lăsați încercarea să eșueze, apoi mutați certificatul clientului din folderul rejected în folderul trusted de pe țintă și reporniți serverul dacă acesta pune în cache lista de încredere. Acordați încredere și certificatului serverului pe partea de client.
- Importați un model informațional dacă mașina are unulAcolo unde build-ul TF6100 instalat acceptă importul de nodeset, încărcați NodeSet2-ul companion și legați simbolurile publicate la variabilele modelului, astfel încât clientul să vadă tipuri standard în locul unui arbore de simboluri ADS. Confirmați mecanismul de import acceptat de build-ul dumneavoastră înainte de a proiecta în jurul lui.
- Reglați abonamentele în raport cu realitatea ADSServerul eșantionează runtime-ul prin ADS, deci intervalul dumneavoastră de eșantionare OPC UA este limitat de ceea ce pot livra acel strat și ciclul de task. Setați intervalul de publicare la cadența de care are nevoie consumatorul dumneavoastră, aplicați benzi moarte pe semnalele analogice și citiți înapoi intervalele revizuite returnate de server.
Cum arată spațiul de adrese
Spațiul de adrese implicit oglindește arborele de simboluri ADS al runtime-ului publicat: o ierarhie care urmează dispozitivul și portul de runtime, apoi listele de variabile globale și instanțele de program, apoi variabilele pe care le-ați marcat, cu membrii structurilor imbricați așa cum sunt declarați. Identificatorii sunt șiruri construite din calea simbolului, așa că o variabilă apare sub forma numelui complet calificat pe care îl are în cod, ceea ce face maparea lizibilă, dar cuplează clientul dumneavoastră de convenția de denumire din cod. Versiunile mai noi pot prezenta suplimentar un folder în stil model de dispozitiv, derivat din modelul Device Information. Acolo unde un nodeset a fost importat și legat, tipurile companion standard apar alături de arborele de simboluri sau în locul lui, iar aceasta este varianta pe care merită să insistați pentru orice integrare pe care vă așteptați să o refolosiți.
Capcanele
- TF6100 este licențiat, iar licența stă pe țintă. Acesta este un risc de achiziție și de planificare, nu unul tehnic, și este aceeași categorie de capcană ca opțiunea de server a unui producător de PLC: confirmați licența cu Beckhoff înainte de a vă angaja la termene.
- Redenumirea unei variabile, mutarea ei între GVL-uri sau modificarea unei structuri schimbă identificatorul de tip șir, iar clientul se defectează cu BadNodeIdUnknown, deși nimic legat de mașină nu s-a schimbat. Tratați setul de simboluri marcate cu pragme ca pe un API publicat, cu un proces de modificare.
- Indicii de namespace sunt atribuiți la pornirea serverului și se pot deplasa când se schimbă setul de runtime-uri publicate sau configurația serverului. Rezolvați-i din NamespaceArray la conectare.
- Încrederea în certificate este cel mai mare obstacol practic aici, ca peste tot, cu complicația suplimentară că depozitul de încredere este un director de pe controler. Cineva are nevoie de acces la sistemul de fișiere al acelui controler la punerea în funcțiune, iar acea persoană adesea nu este cea care se ocupă de sarcina OPC UA.
- Atributul de acces la scriere este separat de publicare. Un simbol publicat doar pentru citire este vizibil, acceptă o cerere de scriere și întoarce o stare Bad, așa că verificați întotdeauna StatusCode-ul returnat.
- Serverul citește prin ADS, așa că un simbol actualizat o dată pe ciclu de task nu poate fi eșantionat mai repede decât acel ciclu, indiferent ce interval cereți. Intervalele cerute rapid cumpără încărcare de CPU, nu rezoluție.
- Structurile publicate în bloc pot sosi ca valori structurate pe care clientul dumneavoastră trebuie să le decodeze. Confirmați că clientul poate gestiona mecanismul de descriere a tipurilor al serverului înainte de a proiecta pe baza structurilor în loc de variabile plate.
Cum scoateți date OEE din el
TwinCAT este una dintre cele mai bune platforme PLC din care să preluați date pentru OEE, pentru că mecanismul de pragme îi permite constructorului mașinii să publice o interfață mică și deliberată: o variabilă de stare, un contor de piese bune și unul de rebuturi, un cod de defect sau de motiv, o marcă de timp a ciclului. Insistați pe această interfață, nu pe o descărcare în masă a simbolurilor. Contorizările trebuie menținute în PLC sub formă de contoare; detectarea fronturilor unei variabile booleene la ratele de eșantionare OPC UA va rata ciclurile scurte, pentru că eșantionarea dumneavoastră este limitată de ciclul task-ului și de intervalul de publicare. Dacă constructorul a importat un nodeset de mașini și a legat simbolurile la o mașină de stări și la un contor standard, maparea disponibilității și a contorizărilor devine portabilă și puteți reutiliza clientul pe mașinile altor producători. Timpul de producție planificat, calendarele de schimburi și timpii de ciclu standard nu se află în controler.
Verificat ultima dată la 7 septembrie 2026 față de OPC UA 1.05.07. OPC UA Connect este o resursă educațională și nu este afiliată cu OPC Foundation.