Integrare · PLC

Conectați OPC UA la Siemens S7-1500

ProdusSiemens S7-1500
CategoriePLC
Rol OPC UAServer

S7-1500 are un server OPC UA integrat în firmware-ul CPU-ului, activat în TIA Portal și accesibil la opc.tcp://<plc-ip>:4840. Problema este comercială, nu tehnică: în mod normal este necesară o licență sau o opțiune de runtime pentru server, iar atât aceasta, cât și nivelul minim de firmware trebuie confirmate cu Siemens.

Înainte de a începe

  • Un nivel de firmware al CPU-ului care include serverul OPC UA și licența sau opțiunea de runtime care îl activează. Niciuna nu poate fi presupusă în siguranță dintr-o fișă tehnică citită o dată; ambele depind de numărul de comandă exact al CPU-ului.
  • TIA Portal la o versiune care se potrivește cu firmware-ul CPU-ului. Un proiect realizat pe o versiune TIA mai veche poate să nu expună setările de server pe care le căutați.
  • Licența prezentă pe CPU înainte ca serverul să funcționeze. Tratați achiziția licenței ca termen de livrare în planul de proiect, nu ca pe un pas de configurare pe care îl faceți în ziua punerii în funcțiune.
  • O cale de rețea către TCP 4840 de acolo de unde rulează clientul sau un aranjament de conectare inversă dacă CPU-ul se află sub o graniță de nivel Purdue care permite doar conexiuni către exterior.
  • Un ceas disciplinat. CPU-ul validează perioadele de valabilitate ale certificatelor, așa că decalajul de ceas între PLC și client se prezintă ca o eroare de certificat, nu ca o problemă de timp.

Configurarea

  1. Activați serverul în proprietățile CPUÎn configurația dispozitivului, deschideți proprietățile CPU și găsiți setările serverului OPC UA. Activați serverul și notați endpointul raportat de TIA, în mod normal opc.tcp://<plc-ip>:4840. Setați numele aplicației în mod deliberat: se propagă în ApplicationUri și în certificatul de instanță al aplicației propriu CPU-ului, iar schimbarea lui ulterioară invalidează fiecare relație de încredere pe care ați construit-o.
  2. Decideți pentru fiecare tag ce este expusTag-urile PLC și membrii blocurilor de date poartă atribute de accesibilitate care controlează dacă sunt vizibile pentru HMI și OPC UA și dacă pot fi scrise. Un tag cu atributul de vizibilitate dezactivat pur și simplu nu apare în spațiul de adrese; un tag care este vizibil, dar nu poate fi scris, apare și apoi refuză scrierea. Setați aceste atribute ca o decizie deliberată de interfață, nu lăsând valorile implicite.
  3. Construiți o interfață de server în loc să expuneți tot programulTIA vă permite să definiți o interfață de server: un set selectat de noduri, cu nume alese de dumneavoastră, decuplat de numele interne de simboluri. Faceți acest lucru. Vă oferă un contract stabil, astfel încât refactorizarea internă a programului nu strică clientul, și menține spațiul de adrese suficient de mic pentru ca un server încorporat să îl parcurgă rapid.
  4. Mapați o specificație însoțitoare pe interfață, dacă aveți unaImportați fișierul NodeSet2 al specificației însoțitoare cu SiOME, mapați tag-urile PLC pe variabilele modelului și exportați rezultatul înapoi în proiectul TIA ca interfață de server. Clientul navighează apoi prin MachineIdentificationType și o mașină de stare, nu printr-un arbore de blocuri de date, iar același cod de client funcționează pe următoarea mașină.
  5. Configurați securitatea și certificatele înainte de a configura dateleAlegeți politicile de securitate și modurile de securitate a mesajelor pe care le va oferi CPU-ul, decideți între token-uri de identitate anonime și cu nume de utilizator și generați certificatul de server al CPU-ului prin setările globale de securitate ale proiectului. Certificatul trebuie să poarte în Subject Alternative Name fiecare nume de gazdă și fiecare adresă IP pe care un client le va apela efectiv, plus ApplicationUri ca intrare de tip URI.
  6. Compilați, descărcați, apoi navigați cu un client independentDescărcați configurația hardware, apoi conectați-vă cu UaExpert sau opcua-commander pe un endpoint cu securitate None mai întâi, pentru a dovedi accesibilitatea, și abia apoi pe un endpoint semnat și criptat. Prima încercare securizată eșuează în mod normal cu BadCertificateUntrusted; mutați certificatul clientului din lista de respinse a CPU-ului în lista sa de certificate de încredere și acordați încredere certificatului CPU pe partea de client.
  7. Citiți NamespaceArray și rezolvați indicii la runtimeCitiți NamespaceArray al serverului o dată pentru fiecare conexiune, construiți o mapare de la URI de namespace la indice și stocați în configurație URI-ul de namespace plus identificatorul. Nu stocați niciodată numărul ns= brut. Acesta este lucrul care împiedică următorul download de program să vă strice clientul.
  8. Verificați limitele proprii ale CPU înainte de a dimensiona abonamenteleDatele tehnice ale CPU indică numărul maxim de sesiuni, abonamente, MonitoredItems și intervalele minime de eșantionare și de publicare acceptate. Dimensionați clientul după acele cifre și rețineți că serverul împarte CPU-ul cu programul ciclic.

Cum arată spațiul de adrese

Dacă nu construiți o interfață de server, spațiul de adrese este un arbore de formă Siemens, nu un model de specificație însoțitoare: un nod numit după PLC, cu foldere pentru blocuri de date globale și de instanță, intrări, ieșiri, memorie, contoare și temporizatoare dedesubt. Identificatorii sunt șiruri care oglindesc numele simbolurilor din TIA, astfel încât un membru al unui bloc de date apare ca ns=3;s="MyDB"."Speed", cu elementele de tablou indexate în identificator. Structurile declarate în program apar ca valori structurate, pe care clientul dumneavoastră le poate decoda doar dacă acceptă mecanismul de descriere a tipurilor ales de server. O interfață de server înlocuiește toate acestea cu numele și ierarhia pe care le-ați definit, iar un model însoțitor mapat cu SiOME îl înlocuiește cu tipuri standard sub URI-urile de spațiu de nume standard.

Capcanele

  • Licența este cel mai frecvent risc de planificare din întreaga integrare. Un server care nu pornește pentru că o opțiune nu a fost comandată niciodată arată exact ca o problemă de firewall în prima după-amiază. Confirmați cerințele curente de licență și de firmware cu Siemens înainte ca cineva să rezerve timp de punere în funcțiune.
  • Indexurile de spațiu de nume sunt atribuite la pornirea serverului și se pot schimba după o descărcare de program sau o schimbare de firmware. Un client cu un număr ns= codificat rigid eșuează apoi cu BadNodeIdUnknown pe noduri care sunt încă perfect prezente. Rezolvați indexurile din NamespaceArray la momentul conectării.
  • Determinarea CPU-ului să accepte certificatul clientului este, în practică, cel mai mare obstacol de implementare și este o operație cu două fețe: clientul trebuie să acorde încredere CPU-ului, iar CPU-ul trebuie să acorde încredere clientului. Planificați o procedură de listă de încredere sau un PKI înainte de prima mașină, nu după a zecea.
  • Un tag care este vizibil, dar nu este marcat ca inscriptibil, va accepta cererea de scriere și va returna o stare Bad. Citiți întotdeauna înapoi după scriere în timpul punerii în funcțiune și verificați StatusCode returnat, în loc să vă încredeți că nu a fost ridicată nicio excepție.
  • Serverele încorporate au limite de sesiuni, abonamente și MonitoredItems mult mai mici decât un server pe PC. Trei clienți, fiecare deschizând propria sesiune cu propriul interval de publicare, pot epuiza un CPU pe care un singur client bine proiectat nu l-ar afecta.
  • Comportamentul marcajelor de timp la serverele încorporate în PLC este adesea sumar: SourceTimestamp poate să nu spună mai mult decât ServerTimestamp, iar ceasul CPU-ului poate fi ora locală, fără decalaj. Decideți ce marcaj de timp stocați, verificați ce completează efectiv CPU-ul și țineți NTP activ pe tot.
  • Perioadele de valabilitate a certificatelor sunt verificate față de ceasul CPU-ului. Un CPU care și-a pierdut ceasul după o oprire îndelungată respinge certificate valide cu o eroare de timp, până la corectarea ceasului.

Cum scoateți date OEE din el

Puteți obține disponibilitate, contorizări și motive de la un S7-1500, dar numai ceea ce calculează programul. În mod implicit nimic nu este standardizat: starea vine din orice boolean sau întreg a folosit programatorul, contorizările din orice contor există, iar motivele din cuvinte de defect. Cereți un model de stare și un contor în PLC, în loc să detectați fronturile unui bit de funcționare în client, pentru că clientul vede doar valori eșantionate și va rata opririle scurte dintre eșantioane. Dacă constructorul mașinii poate fi convins să publice o interfață de server mapată pe tipurile Machinery sau MachineTool, disponibilitatea și contorizările devin portabile între producători, iar maparea încetează să mai fie muncă specifică fiecărei mașini. Timpul de producție planificat, calendarele de schimburi, timpii de ciclu standard și contextul comenzii nu se află în CPU și trebuie să vină din MES sau ERP.

Verificați înainte să vă bazați pe asta:Dacă este necesară o licență sau o opțiune de server OPC UA pentru CPU-ul dumneavoastră, cum se numește și cum este dimensionată, nivelul minim de firmware pentru funcțiile de server, client și PubSub, precum și limitele per CPU pentru sesiuni, abonamente, MonitoredItems și intervalul minim de eșantionare sunt toate controlate de furnizor și s-au schimbat de-a lungul generațiilor de firmware. Confirmați fiecare dintre ele cu Siemens, în raport cu numărul exact de comandă al CPU și cu firmware-ul, înainte de a vă angaja la un termen, și nu luați o cifră dintr-o postare de forum sau din această pagină ca dată de intrare pentru achiziție.

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.

Descărcare gratuită
OPC UA Machine Data → OEE Mapping Kit
La ce noduri să vă abonați, cum devin ele disponibilitate, performanță și calitate și ce specificație companion vă dă deja răspunsul: ca să nu mai inventați tag-uri.
Luați kitul gratuit de mapare →
Gratuit, fără curs, fără autentificare