Referință
Coduri de stare OPC UA
Fiecare cod de stare OPC UA pe care un inginer îl întâlnește cu adevărat, cu ce înseamnă, cauzele reale în ordinea frecvenței și soluția. În prezent sunt documentate 127 de coduri din cele 273 din lista normativă StatusCode, prioritizate după cât de des opresc un proiect.
Cum se folosește.Lucrați cu codul pe care l-ați primit efectiv, nu cu cel pe care îl așteptați. OPC UA întoarce cel mai specific cod pe care îl poate da, iar codul specific numește de regulă problema reală, o eroare de certificat nu este aproape niciodată o eroare de rețea. Dacă nu vă puteți conecta deloc, începeți de laBadConnectionRejected; dacă sesiunea se deschide și apoi cade, începeți de laBadSecurityChecksFailed.
127 de pagini
Certificate 14
BadCertificateChainIncompleteUn certificat emis de o autoritate de certificare nu trece validarea deși autoritatea rădăcină este de încredere, iar eroarea indică un lanț incompletBadCertificateHostNameInvalidCanalul se deschide suficient cât să valideze certificatul, apoi eșuează cu o nepotrivire de domeniu sau de nume de gazdă, de obicei imediat după ce tBadCertificateInvalidHandshake-ul eșuează imediat, fără vreun detaliu util, iar mutarea certificatului în magazinul de certificate de încredere nu schimbă absolut nimic.BadCertificateIssuerRevocationUnknownValidarea se încheie pe certificatul partenerului, dar eșuează pe unul dintre certificatele de autoritate de deasupra lui, de regulă într-o PKI pe douBadCertificateIssuerRevokedToate aplicațiile al căror certificat provine de la o anumită autoritate de certificare nu se mai pot conecta dintr-o dată, în timp ce aplicațiile cerBadCertificateIssuerTimeInvalidFiecare aplicație certificată de o singură autoritate de certificare încetează să se conecteze în același moment, iar certificatele individuale ale apBadCertificateIssuerUseNotAllowedCertificatele emise de o autoritate de certificare corporativă funcțională - de încredere în altă parte în întreprindere, potrivite pentru TLS - suntBadCertificatePolicyCheckFailedUn dispozitiv mai vechi sau un client vechi este refuzat la handshake, în timp ce partenerii moderni se conectează normal la același endpoint, iar cerBadCertificateRevocationUnknownUn certificat corect înlănțuit, valabil și denumit corect este refuzat cu o eroare legată de revocare, iar folderul crl din PKI-ul dumneavoastră esteBadCertificateRevokedO conexiune care funcționa anterior eșuează la handshake cu acest cod, iar certificatul partenerului ajunge în depozitul de certificate respinse, în tBadCertificateTimeInvalidO conexiune care a funcționat luni de zile eșuează peste noapte, sau un dispozitiv nou-nouț eșuează imediat la prima conectare, cu o eroare de valabilitate a certificatului.BadCertificateUntrustedConexiunea moare în timpul OpenSecureChannel, clientul afișează un dialog de încredere sau o eroare de certificat, iar o copie a certificatului probleBadCertificateUriInvalidValidarea certificatului trece de verificările de încredere și de nume de gazdă și apoi eșuează la URI-ul aplicației, adesea imediat după ce cineva aBadCertificateUseNotAllowedUn certificat care este de încredere, valabil ca dată și denumit corect este totuși respins, iar mesajul indică utilizarea cheii, nu încrederea, lanțu
Securitate 7
BadApplicationSignatureInvalidCanalul securizat se deschide și CreateSession reușește, apoi ActivateSession eșuează imediat, așa că pare că clientul aproape se conectează înainte de a cădea.BadNonceInvalidO anumită pereche de client și server eșuează la OpenSecureChannel sau la ActivateSession, deși ambele aplicații funcționează perfect cu orice alt partener.BadSecurityChecksFailedHandshake-ul trece de lista de endpoint-uri și apoi moare în timpul OpenSecureChannel, CreateSession sau ActivateSession, cu o eroare de securitate caBadSecurityModeInsufficientCitirile și navigările funcționează normal, dar un anumit apel de metodă sau un anumit nod eșuează, și eșuează identic pentru fiecare utilizator încercat.BadSecurityModeRejectedO conexiune de test rapidă, nesecurizată, este refuzată direct, sau un client configurat pentru Sign eșuează pe un server care publică doar SignAndEncrypt.BadSecurityPolicyRejectedUn client care se conectează fără probleme la un server refuză să se conecteze la altul, iar eșecul se produce imediat la deschiderea canalului, fărăBadUserSignatureInvalidAutentificarea anonimă sau cu nume de utilizator pe același server funcționează și doar identitatea de utilizator bazată pe certificat eșuează, întotdeauna la ActivateSession.
Autentificare 4
BadIdentityChangeNotSupportedO aplicație care se conectează anonim și apoi se reactivează cu credențialele unui utilizator pentru o acțiune privilegiată este refuzată la reactivarBadIdentityTokenInvalidActivateSession eșuează imediat indiferent de numele de utilizator și parola încercate, iar conexiunea anonimă la același endpoint poate funcționa fără probleme.BadIdentityTokenRejectedCredențialele unui utilizator sunt refuzate, în timp ce alt utilizator se conectează cu succes la același endpoint, cu același client și aceleași setări.BadUserAccessDeniedParcurgerea funcționează, citirile pe unele noduri funcționează, iar o anumită citire, scriere sau apel de metodă este refuzată pentru un utilizator, în timp ce un administrator o poate face.
Sesiuni 4
BadSessionClosedApelurile eșuează imediat cu BadSessionClosed în loc să expire, adesea imediat după ce o rutină de oprire sau o reconectare a rulat în paralel cu muncBadSessionIdInvalidUn client care citește fără probleme de minute sau de ore eșuează brusc la fiecare apel de serviciu cu BadSessionIdInvalid și continuă să eșueze pânăBadSessionNotActivatedConexiunea pare să se stabilească - nicio eroare de certificat, niciun timeout - dar prima cerere reală, de obicei un Browse al folderului rădăcină, eBadTooManySessionsClienții noi nu se pot conecta, în timp ce cei existenți continuă să funcționeze, iar eșecul apare la CreateSession, nu la nivelul socketului sau al certificatului.
Canale 4
BadRequestHeaderInvalidFiecare apel de serviciu pe un canal altfel sănătos eșuează cu aceeași eroare de antet, inclusiv unele simple precum Read, așa că problema nu este înBadSecureChannelClosedCererile eșuează în grup în momentul în care canalul cade, de obicei cu cererile Publish în așteptare încheindu-se primele, iar starea conexiunii cliBadSecureChannelIdInvalidCererile sunt respinse instantaneu cu o eroare la nivel de canal, adesea imediat după o încercare de reconectare care păruse să reușească la nivelul TCP.BadSecureChannelTokenUnknownO conexiune de lungă durată eșuează la un interval regulat - adesea la ora fixă sau la un multiplu fix de minute - și își revine după o reconectare, a
Conexiune 17
BadConnectionClosedCererile în curs, în special apelurile Publish cu interogare lungă, se încheie toate cu aceeași eroare în același moment, iar starea clientului trece BadConnectionRejectedClientul eșuează imediat cu o eroare de conexiune și fără vreun detaliu OPC UA - fără listă de endpoint-uri, fără solicitare de certificat, fără sesiune.BadEndpointUrlInvalidConexiunea eșuează înainte de orice solicitare de certificat sau de utilizator, de obicei într-o secundă, clientul raportând URL-ul și nu o problemă dBadProtocolVersionUnsupportedConexiunea TCP este acceptată și apoi ruptă în câteva milisecunde, înainte de orice listă de endpointuri, solicitare de certificat sau sesiune, cu o eBadRequestInterruptedMai multe cereri în curs eșuează împreună exact în momentul în care începe o reconectare, fără niciun motiv de defect din partea serverului atașat vreuneia dintre ele.BadRequestTimeoutUn anumit tip de apel - un Browse mare, o citire în masă, o metodă care atinge stratul de câmp - expiră constant, în timp ce apelurile mici pe aceeașiBadServerHaltedConexiunea se stabilește sau se restabilește fără probleme, dar fiecare apel de serviciu este refuzat cu același cod, iar situația persistă până cândBadServerNotConnectedFie fiecare apel al unui client eșuează instantaneu, fără nicio activitate de rețea, fie un subset de taguri de pe un gateway devin nevalide împreună,BadServerTooBusyCererile sunt refuzate rapid și curat pe o conexiune altfel sănătoasă, în rafale care se corelează cu pornirea fabricii, cu o repornire a serverului sBadShutdownToate cererile în curs se încheie deodată cu același cod, conexiunea cade imediat după aceea, iar serverul este inaccesibil pentru o scurtăBadTcpEndpointUrlInvalidConexiunea TCP este acceptată și apoi închisă imediat cu un cadru de eroare, așa că clientul raportează un eșec în mult sub o secundă, fără niciun schBadTcpMessageTooLargeOperațiile mici funcționează bine, dar un anumit apel eșuează de fiecare dată: o citire largă, o scriere mare, o navigare printr-un folder mare sau o BadTcpMessageTypeInvalidUn server configurat pentru reverse connect înregistrează respingeri repetate de la adresa clientului și încetează să mai reîncerce, în timp ce clientBadTcpNotEnoughResourcesConexiunile sau cererile mari eșuează pe un server care rulează de ceva vreme, adesea împreună cu eșecuri de abonare și de browsing, și adesea dispărâBadTcpSecureChannelUnknownMesajele sunt respinse la nivelul de încadrare imediat după ceea ce părea o reconectare reușită sau imediat după o repornire de server, în timp ceBadTcpServerTooBusyConexiunile noi sunt refuzate la handshake, în timp ce clienții existenți continuă să funcționeze, iar refuzurile se grupează la pornirea fabricii sau după o repornire a serverului.BadTimeoutOperațiile eșuează după un interval fix care corespunde unei valori implicite de SDK, iar conexiunea se reface adesea singură o clipă mai târziu, dând
Spațiu de adrese 12
BadAttributeIdInvalidO operație Read întoarce Good la nivel de serviciu, dar o intrare din tabloul de rezultate poartă această stare, de obicei intrarea pentru un folder sBadBrowseDirectionInvalidUn apel Browse eșuează imediat cu acest cod pentru fiecare nod, inclusiv pentru noduri binecunoscute precum folderul Objects, în timp ce un Read pe acBadContinuationPointInvalidO interogare mare de browsing sau de istoric funcționează pentru primele câteva pagini și apoi eșuează pe parcurs, mai des pe un server încărcat sauBadNoContinuationPointsBrowse sau HistoryRead începe să eșueze pentru fiecare client de pe un server încărcat, iar eșecurile dispar după repornirea clienților, nu după vreoBadNoMatchO cale de navigare care se rezolvă pe o mașină nu returnează nicio potrivire pe una aparent identică, sau o interogare care a funcționat într-un sistBadNodeClassInvalidO anumită operație eșuează pe un nod care se navighează și se citește perfect, cel mai adesea un apel de metodă sau un abonament la evenimente.BadNodeIdInvalidFiecare cerere care atinge un anumit nod eșuează identic, iar valoarea care eșuează arată adesea vizibil greșit în jurnal - un NodeId gol, o virgulă rBadNodeIdUnknownUn client care a funcționat luni de zile eșuează brusc pe unele sau pe toate nodurile sale imediat după o descărcare în controler, o actualizare de fiBadNotFoundO intrare din rezultatul unei traduceri de cale de browse este invalidă în timp ce celelalte se rezolvă, sau o cale întreagă eșuează la un element anuBadObjectDeletedUn subset de noduri care funcționau acum o clipă începe să eșueze, în timp ce restul spațiului de adrese rămâne neatins, adesea după ce o lucrare s-aBadReferenceTypeIdInvalidUn apel Browse sau AddReferences care funcționează pe un server eșuează pe altul, iar parcurgerea nu întoarce nimic, nu un set de rezultate gol.BadTooManyMatchesO traducere de cale sau o interogare eșuează doar pe cele mai mari mașini sau pe cele mai încărcate servere, în timp ce aceeași cerere reușește pe un
Acces la date 14
BadDataEncodingInvalidUn Read sau un CreateMonitoredItems pe o variabilă structurată eșuează cu BadDataEncodingInvalid, în timp ce nodurile scalare de pe același server se citesc fără probleme.BadDataEncodingUnsupportedValorile structurate se citesc fără probleme cu codificarea implicită, dar eșuează de îndată ce clientul cere XML sau JSON, pe un server care altfel sBadDecodingErrorUn anumit nod sau un anumit apel de serviciu nu se poate decoda, în timp ce restul lucrurilor din aceeași sesiune funcționează, sau un client aruncă oBadEncodingLimitsExceededCitirile sau notificările de abonament funcționează pentru seturi mici și eșuează când lotul crește, când se adaugă un tablou mare sau când se încearcă un export al spațiului de adrese.BadIndexRangeInvalidUn Read sau un Write care include un IndexRange eșuează imediat, în timp ce aceeași cerere fără IndexRange reușește și returnează întregul tablou.BadIndexRangeNoDataO citire pe interval care funcționa ieri returnează acum BadIndexRangeNoData, de obicei după ce tabloul subiacent s-a micșorat sau serverul a repornitBadNotReadableParcurgerea arată nodul și atributele lui fără probleme, dar fiecare citire a atributului Value și fiecare încercare de a-l adăuga într-un abonament îBadNotWritableUn Write întoarce imediat BadNotWritable, fără întârziere și fără efect asupra valorii, în timp ce citirile pe același nod funcționează perfect.BadOutOfRangeO operație Write cu o valoare plauzibilă este respinsă, în timp ce o valoare mai mică sau mai mare pe același nod reușește, iar citirea nodului aratăBadRequestTooLargeUn Read, Write sau CreateMonitoredItems în bloc eșuează de tot, fără rezultate per item, în timp ce aceeași operație împărțită în două jumătăți reușește.BadResponseTooLargeUn Browse al unui folder mare, un HistoryRead pe o fereastră lungă sau un Publish în timpul unei rafale eșuează, în timp ce același apel pe un domeniuBadStructureMissingUn apel de serviciu eșuează imediat cu BadStructureMissing și fără rezultate per item, de regulă la prima folosire a unei cereri construite manual sau generate.BadTypeMismatchO scriere care pare corectă întoarce BadTypeMismatch pentru un item, în timp ce ceilalți itemi din aceeași cerere reușesc, iar citirea înapoi a aceluiBadWriteNotSupportedUn Write eșuează cu BadWriteNotSupported deși AccessLevel arată CurrentWrite, iar aceeași valoare scrisă dintr-un alt instrument reușește.
Dispozitiv 6
BadDeviceFailureTag-urile de la un dispozitiv sau de la un modul de I/O devin invalide, în timp ce restul serverului rămâne sănătos, iar dispozitivul însuși semnalează o eroare.BadNoCommunicationSesiunea rămâne conectată și browsing-ul funcționează, dar un grup de taguri trec toate într-o stare nevalidă în același moment și rămân acolo până câBadNotConnectedUn nod se navighează normal și are un DisplayName și un DataType rezonabile, dar fiecare citire returnează o stare proastă și nicio valoare nu a sositBadOutOfServiceUn tag devine invalid într-un moment care se corelează cu lucrări de mentenanță, nu cu vreun eveniment de echipament sau de rețea, și revine la Good cBadSensorFailureO măsurătoare devine nevalidă, în timp ce orice altă valoare de la același dispozitiv rămâne Good, adesea cu semnalul brut aflat evident sub domeniu sBadWaitingForInitialDataImediat după crearea unui abonament, prima notificare pentru unele sau pentru toate elementele sosește cu această stare și fără valoare, apoi urmează
Abonamente 13
BadDeadbandFilterInvalidItemii cu bandă moartă sunt respinși, în timp ce itemi identici cu DeadbandType None sunt acceptați, iar respingerea urmează nodul, nu clientulBadEventFilterInvalidO încercare de abonare la evenimente pe obiectul Server sau pe o zonă de alarme eșuează imediat și niciun eveniment nu este livrat vreodată, deși servBadFilterNotAllowedCreateMonitoredItems sau ModifyMonitoredItems respinge un anumit element cu acest cod, în timp ce elemente identice, fără filtru, sunt acceptate.BadFilterOperandInvalidO abonare la evenimente este respinsă, iar răspunsul poartă un EventFilterResult cu o stare nevalidă pe un anumit operand select sau where, mai degraBadMonitoredItemFilterUnsupportedAcelași filtru care funcționează cu un server este respins de altul, de obicei un PLC sau un gateway încorporat, în timp ce elementul însuși este creaBadMonitoredItemIdInvalidModifyMonitoredItems, SetMonitoringMode, SetTriggering sau DeleteMonitoredItems întoarce acest cod pentru unii itemi, în timp ce alți itemi din acelașBadMonitoringModeInvalidSetMonitoringMode sau CreateMonitoredItems respinge elementul cu acest cod, iar elementul fie nu raportează niciodată, fie rămâne în modul pe care îl avea deja.BadNoSubscriptionBucla Publish întoarce acest cod imediat și în mod repetat, pe o sesiune care se conectează curat și care poate citi și parcurge normal.BadSubscriptionIdInvalidApelurile Publish care funcționau încep să returneze acest cod la fiecare încercare și nu mai sosesc notificări de modificare a datelor, în timp ce unBadTooManyMonitoredItemsCreateMonitoredItems reușește pentru prima parte a unui lot mare și întoarce acest cod pentru rest, așa că un abonament pornește cu mai puțini itemiBadTooManyOperationsUn apel mare de Read, Write, Browse sau CreateMonitoredItems este respins direct cu acest cod, ca eroare la nivel de cerere întreagă, în timp ce aceleBadTooManyPublishRequestsUn client care funcționează cu un server înregistrează constant acest cod cu altul, uneori alături de goluri ocazionale în date, în timp ce tot restulBadTooManySubscriptionsCreateSubscription eșuează după ce un sistem funcționează de ceva vreme sau după ce sunt puși în funcțiune ultimii câțiva clienți, în timp ce abonamen
Istoric 6
BadAggregateInvalidInputsO citire procesată returnează valori agregate bune pentru majoritatea intervalelor și acest cod pentru câteva răzlețe, de obicei intervalele care acoBadAggregateNotSupportedCitirile de istoric brut funcționează, TimeAverage funcționează, iar PercentGood sau WorstQuality returnează acest cod de la același server.BadBoundNotFoundCitirile la marcaje de timp fixe întorc valori în mijlocul unui schimb, dar eșuează la primul și la ultimul moment cerut.BadDataUnavailableCitirile de istoric reușesc pentru ultimele câteva zile și eșuează cu acest cod imediat ce fereastra solicitată intră în date mai vechi.BadHistoryOperationInvalidApelul serviciului de istoric se finalizează, dar fiecare nod se întoarce cu acest cod, iar modificarea ferestrei de timp cu câteva secunde îl face unBadHistoryOperationUnsupportedO citire de istoric brut sau procesat care funcționează cu un server nu returnează decât acest cod cu altul, deși variabila are în mod clar date live
Metode 5
BadArgumentsMissingO metodă care funcționează din dialogul Call al UaExpert eșuează cu acest cod din clientul dumneavoastră, iar adăugarea unui argument fictiv schimbă eroarea în locBadInvalidArgumentApelul ajunge la metodă și eșuează imediat, aceleași valori funcționând dintr-un instrument al producătorului, dar nu din clientul dumneavoastră.BadMethodInvalidMetoda este clar vizibilă în spațiul de adrese și lizibilă în UaExpert, dar fiecare Call returnează acest cod.BadNotExecutableAcelași apel reușește când mașina este oprită în mod local și eșuează ori de câte ori mașina funcționează, sau reușește pentru un cont și eșuează pentru altul.BadTooManyArgumentsUn apel de metodă care funcționa înainte eșuează acum după o actualizare de client sau o retrogradare de server, fără nicio schimbare a valorilor trimise.
Server 9
BadInternalErrorO cerere reproductibilă eșuează, în timp ce tot restul din aceeași sesiune funcționează, iar jurnalul serverului conține o excepție sau un stack traceBadInvalidStateAcelași apel reușește uneori și eșuează alteori, iar diferența urmărește ce făcea mașina sau obiectul în acel moment.BadNotImplementedUn serviciu sau o operație care este definită în specificație și vizibilă în SDK-ul dumneavoastră întoarce același refuz la fiecare încercare, pe fieBadNotSupportedUn serviciu care funcționează cu parametrii impliciți eșuează imediat ce setați o anumită opțiune, un filtru, o codificare sau un indicator.BadNothingToDoUn apel de serviciu eșuează instantaneu, fără niciun rezultat pentru operațiile individuale, de obicei imediat după o încărcare de configurație sau un pas de filtrare în client.BadOutOfMemoryCererile încep să eșueze sub sarcină, în timp ce cererile mai mici încă reușesc, iar serverul își poate reveni singur odată ce clienții se retrag.BadResourceUnavailableO parte din spațiul de adrese funcționează normal, în timp ce o ramură, un serviciu sau un dispozitiv eșuează constant, adesea începând la un moment cBadServiceUnsupportedUn anumit apel eșuează identic de fiecare dată, din fiecare client, în timp ce sesiunile, browsingul și citirile funcționează normal.BadUnexpectedErrorO operație eșuează cu o stare care nu spune nimic specific, uneori intermitent, iar clientul nu are nicio informație suplimentară pe baza căreia să acționeze.
Incert 6
UncertainEngineeringUnitsExceededUn tag raportează o valoare ușor peste limitele sale declarate, cu o stare incertă, cel mai adesea la zero, la un maxim sau imediat dincolo de un capăUncertainInitialValuePrima notificare pentru mulți itemi după crearea unui abonament poartă această stare, iar valorile reale cu stare Good urmează într-un ciclu sau douăUncertainLastUsableValueUn tag continuă să afișeze o valoare plauzibilă și neschimbată, în timp ce marcajul de timp încetează să mai avanseze, iar tendințele din aval devin linii drepte în loc să devină invalide.UncertainNoCommunicationLastUsableValueToate tagurile unui dispozitiv îngheață la valori plauzibile, cu o stare incertă, în același moment, în timp ce tagurile altor dispozitive de pe acelaUncertainSensorNotAccurateUn singur tag analogic raportează o stare incertă, în timp ce valoarea sa se află la capătul domeniului sau aproape de el, iar tagurile din jur sunt toate Good.UncertainSubstituteValueUn tag raportează un număr suspect de rotund sau cu aspect implicit - zero, o valoare de referință nominală, o valoare de mijloc de interval - cu o st
Good 6
GoodClampedO scriere întoarce succes, dar citirea înapoi a aceluiași nod dă un alt număr - de regulă exact limita domeniului - iar mașina se comportă ca și cumGoodCompletesAsynchronouslyUn apel de metodă întoarce imediat succes pentru o operație care în mod clar nu se poate să se fi terminat - o descărcare de rețetă, o actualizare deGoodMoreDataO interogare de istoric întoarce o serie plauzibilă, dar scurtă, care se termină mereu în același punct, iar un client naiv conchide că acolo se opresc datele.GoodNoDataO interogare de istoric pentru o perioadă pe care o așteptați populată returnează un rezultat gol cu stare Good, iar un raport arată un interval alb GoodOverloadDatele par continue și plauzibile, dar lipsesc eșantioane - un contor sare, un ciclu lipsește, un tranzitoriu rapid nu apare niciodată - și nu este seGoodSubscriptionTransferredDupă o întrerupere de rețea sau o reînnoire de canal, clientul înregistrează acest cod o dată pentru fiecare abonament transferat, iar datele se reiau fără niciun monitored
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.