WÄGETECHNIK · EIGENENTWICKLUNG · SUPPORT
+386 2 320 33 46info@preciz.si
PRECIZWägetechnik.
Verbunden mit Ihrem Prozess.

PRECIZ · NEUTRON OPC UA

Neutron OPC UA — Integrationshandbuch

OPC UA-Integration für Neutron: sichere Verbindungen, Live-Wägedaten, stabile Erfassung und SPS/SCADA-Integration.

Manuelle Fassungen

Manuelle Version: 1.0 · Veröffentlichungsdatum: 18. Oktober 2026
Gilt für: Neutron Firmware 2.5.0 mit OPC UA-Unterstützung · Herstellerinformationsmodell 1.3.0

Tabelle 1

Fassung

Datum der Veröffentlichung

Änderungen

1.0

18. Oktober 2026

Erste Ausgabe des Neutron OPC UA Handbuchs. NodeSet2-Informationsmodell 1.3.0 mit ActiveChannel zum Lesen des aktiven Kanals und SetChannel zum Auswählen von Kanal 1-4.

Video: Neutron OPC UA

PRECIZ ist Mitglied der OPC Foundation

PRECIZ ist offiziell registriert OPC-Stiftung Mitglied. Den offiziellen PRECIZ-Eintrag im Mitgliedsverzeichnis der OPC Foundation ansehen.

1. Übersicht und unterstützte Features

Neutron by PRECIZ bietet einen OPC UA Server für die Integration mit SPS, SCADA, MES- und PC-Anwendungen. Die Schnittstelle nutzt die OPC UA Client/Server Kommunikation über UA-TCP mit UA Binary Codierung.

Der Server bietet:

  • Aktuelles Brutto-, Netto- und Taragewicht sowie hochauflösendes Bruttogewicht, ADC-Rohwert, Stabilität, Waagenstatus, Fehlercode und Einheit.

  • Mess-Metadaten: Division, Dezimalstellen, Kapazität, technische Einheiten und Engineering Range.

  • Geräteidentifikation und Standard-OPC UA-Serverinformationen.

  • Datenänderungsabonnements für Live-Werte.

  • Ein kohärenter Messwert, der elf Felder aus einem Snapshot enthält.

  • Asynchrone Erfassung und Abruf einer neuen stabilen Messung.

  • Tara-, voreingestellte Tara-, Null- und Leeroperationen.

  • Filtereinstellung FT und ADC-Choppereinstellung FC.

    Lesen Sie den aktiven Wägekanal mit ActiveChannel und wählen Sie Kanal 1-4 mit SetChannel (NodeSet2 1.3.0).

  • Zwei gleichzeitige Client-Sitzungen.

  • Optionale verschlüsselte Kommunikation, Application Certificate Trust und User Berechtigungen zum Lesen oder Lesen und Ausführen von Befehlen.

Alle exponierten Prozessvariablen sind schreibgeschützt. Operationen werden durchgeführt durch Methoden. Die Schnittstelle bietet keine willkürliche native Befehlsausführung, Kalibrierung, Ausgabesteuerung, Anwendungsauswahl, Zählergebnisse, Historie, Veranstaltungen oder OPC UA PubSub. Das Informationsmodell ist ein PRECIZ-Anbietermodell, nicht das OPC UA Wäge- oder Device Integration Companion-Modell.

Drei Möglichkeiten, eine Messung zu erhalten, dienen unterschiedlichen Zwecken:

Tabelle 2

Schnittstelle

Verwendung

Live-Variablen und Abonnements

Anzeige oder kontinuierliche Überwachung einzelner Werte

ReadMeasurement

Erhalten Sie alle elf Messfelder aus einem aktuellen Snapshot

CaptureStableWeight gefolgt von GetCapturedMeasurement

Einfrieren einer neuen gültigen stabilen Messung und Abrufen per Request-ID

2. Schnellstart

2.1 Server aktivieren

  1. Verbindung zur lokalen Konfigurationsseite von Neutron oder zur Bluetooth-Konfiguration Versorgungsunternehmen. Verwenden Sie HTTPS oder authentifiziertes Bluetooth für die Zertifikats-/Benutzerverwaltung.

  2. Wählen Sie die Netzwerkverbindungsschnittstelle aus und erhalten Sie die zugewiesene IP-Adresse.

  3. Lassen Sie die Messwerterfassung der Waage in den Waageneinstellungen aktiviert.

  4. Öffnen Sie die OPC UA Tab. Die Firmware muss melden, dass OPC UA verfügbar ist.

  5. Für den verschlüsselten Zugriff erstellen Sie zuerst einen Benutzer in Benutzer & Berechtigungen.

  6. In Einstellungen, aktivieren Sie den Server, wählen Sie den Sicherheitsmodus und behalten Hafen 4840 und Mindestintervall 100 ms für die Erstverbindung.

  7. Klicken Sparen. Kopieren Sie die Verbindungsadresse mit Kopierendpunkt.

Beispiel-Endpunkt:

opc.tcp://192.168.50.73:4840

2.2 Verbinden mit UAExpert

  1. Fügen Sie den Endpunkt als Server in UAExpert hinzu.

  2. Im verschlüsselten Modus auswählen Basic256Sha256 / SignAndEncrypt und Benutzername/Passwort Authentifizierung. Im ungeschützten Modus auswählen Keine und Anonym.

  3. Für den verschlüsselten Zugriff vergleichen und vertrauen Sie dem Zertifikat von Neutron. Wenn der Kunde Ein Zertifikat ist von Neutron noch nicht vertrauenswürdig, folgen Sie Abschnitt 4.2 und verbinden Sie es erneut.

  4. Stellen Sie eine Verbindung her und öffnen Sie Objects → CS-NEUTRON Scale. Die NodeId des Objekts ist Scale; sein angezeigter Name lautet CS-NEUTRON Scale.

  5. Zug Brutto, Netto, Unkraut, Stabil, Status, Fehlercode und Einheit in Datenzugriffsansicht.

  6. Verwenden Sie das Kontextmenü Datenzugriffsansicht, um die Veröffentlichung des Abonnements festzulegen Intervall und Probenahmeintervall für überwachte Positionen, zunächst 100 ms.

Verwenden Sie einen Wert nur, wenn sein OPC UA StatusCode Gut ist. ErrorCode=1 bedeutet: Native Scale hat keinen Fehler. Status=1 oder Status=3 beschreibt eine stabile Indikation.

3. Verbindung und Konfiguration

3.1 Endpoint und Networking

Der Endpunkt hat die Form opc.tcp://<assigned-device-IP>:<port>. Verwenden Sie die Adresse der ausgewählten Wi-Fi-, Ethernet- oder LTE-Schnittstelle. Der OPC UA Tab zeigt die Adresse und stellt einen copy-button bereit. Eine stabile IP-Adresse vereinfacht die Integration.

Das Gerät benötigt die IP-Adresse der SPS nicht. Erlauben Sie eingehende TCP Traffic zum ausgewählten Port. Der Client muss eine Netzwerkroute zu Neutron haben; eine LTE-Adresse hinter Carrier NAT ist nicht automatisch von außen erreichbar Dieses Netzwerk. Verwenden sie das entsprechende geroutete netzwerk, private apn oder vpn.

3.2 Einstellungen

Tabelle 3

Einstellung

Schlüssel

Ausfall

Werte/Wirkung

OPC UA verfügbar

OUB

Firmware abhängig

Read-only: 0 abwesend, 1 verfügbar

Sicherheitsunterstützung

OUS

Firmware abhängig

Read-only: 0 abwesend, 1 verfügbar

OPC UA-Server

OUE

Behinderte

0 deaktiviert, 1 aktiviert

TCP-Port

OUP

4840

1024–65535; Wählen Sie einen unbenutzten Service-Port

Mindestaktualisierungsintervall

OUI

100 ms

10–5000 ms; vom Server akzeptiertes Mindestabtast- und Veröffentlichungsintervall

Verbindungssicherheit

OUM

ungeschützt

0 Keine/anonym; 1 Basic256Sha256/SignAndEncrypt mit Benutzername/Passwort

Zugriff auf anonyme Befehle

OUC

Behinderte

Nur im ungeschützten Modus: 0 schreibgeschützt; 1 alle unterstützten Befehle erlaubt

Beim Speichern der OPC UA Einstellungen wird der OPC UA Dienst neu gestartet und die Verbindung zu seinen Clients getrennt. Änderungen an Benutzern und Vertrauenseinstellungen starten den Dienst ebenfalls neu. Stellen Sie nach diesen Änderungen die Verbindung erneut her. Die vorhandenen Einstellungen für Geräte-IP, Waage und Uhr werden weiterverwendet.

Das Mindestintervall ist eine Untergrenze, keine feste Übertragungsperiode oder Garantie der End-to-End-Latenz. Kunden verlangen ihre eigenen Intervalle und müssen Verwenden Sie die überarbeiteten Werte, die vom Server zurückgegeben werden.

4. Sicherheit und Berechtigungen

4.1 Verbindungsmodi

Tabelle 4

Modus

Policy / Message Security

Authentifizierung

Befehlsgewalt

ungeschützt

Keine/keine

Anonym

Kontrolliert durch Anonymous Command Access

Verschlüsselt

Basic256Sha256 / SignAndEncrypt

Benutzername und Passwort; vertrauenswürdiges Client-Anwendungszertifikat

Kontrolliert durch die Erlaubnis des Benutzers

Im verschlüsselten Modus, anonyme Sitzungen und zertifikatsbasiert Nutzer Login sind nicht unterstützt. Das Clientanwendungszertifikat identifiziert die Clientsoftware; Es ersetzt nicht die Benutzername-/Passwort-Authentifizierung. Die Web-Konfiguration PIN und HTTPS-Zertifikate sind von OPC UA-Anmeldeinformationen und Zertifikaten getrennt.

Verwenden Sie den ungeschützten Modus in einem vertrauenswürdigen isolierten Netzwerk. Sie verschlüsseln keine Daten oder einzelne Nutzer authentifizieren.

4.2 Erste verschlüsselte Verbindung

  1. Öffnen Sie die OPC UA-Einstellungen von Neutron über HTTPS oder authentifiziertes Bluetooth.

  2. Hinzufügen eines Benutzers. Benutzernamen enthalten 1–64 ASCII-Buchstaben, Ziffern, Unterstriche oder Bindestriche und sind fallsensitiv. Passwörter enthalten 12-128 Zeichen. bis zu acht Nutzer werden unterstützt; es gibt kein Standard-OPC UA-Konto.

  3. Wählen Nur lesen oder Lesen und Ausführen von Befehlen.

  4. Aktivieren Sie verschlüsselte OPC UA und speichern Sie. Die Geräteuhr muss synchronisiert werden und Es muss mindestens ein Benutzer vorhanden sein. Der sichere Start wartet auf die Synchronisierung der Uhr.

  5. Beim ersten sicheren Startup generiert Neutron seinen privaten Schlüssel und eine selbstsigniertes RSA-2048-Antragszertifikat, gültig für fünf Jahre.

  6. Vergleichen Sie im Client Neutrons SHA-256 Zertifikat Fingerabdruck mit dem Fingerabdruck in der Konfigurationsschnittstelle angezeigt, dann vertrauen Sie ihm.

  7. Versuchen Sie die verschlüsselte Verbindung. Neutron lehnt einen unbekannten Client ab Anwendungszertifikat und listet es unter Bescheinigungen als abgelehnt.

  8. Klicken Refresh-Zertifikate und BenutzerVergleichen Sie den Fingerabdruck des Kunden, und klicken Genehmigung für diese Bescheinigung.

  9. Verbinden Sie sich erneut mit dem Benutzernamen und dem Passwort.

Der Kunde muss Neutron vertrauen, bevor er weit genug gehen kann, um seine eigenen zu senden Bescheinigung. Die Genehmigung steht nicht über Ablauf, Unterschrift, Schlüsselbenutzung oder Application-URI-Validierung.

4.3 Berechtigungen

Tabelle 5

Betrieb

Nur lesen

Lesen und Ausführen von Befehlen

Variablen lesen / abonnieren

Ja

Ja

Neubewertung

Ja

Ja

GetCapturedMeasurement

Ja

Ja

CaptureStableWeight

Nein

Ja

TareCurrent, SetTare, Zero, ClearTare

Nein

Ja

SetFilter, SetHRFilter, SetChannel

Nein

Ja

Variablen schreiben / Benutzer oder Zertifikate verwalten über OPC UA

Nein

Nein

Gespeicherte Rollen Reader und Operator entsprechen diesen beiden Berechtigungen. Es gibt keine Berechtigungsstufen pro Befehl. Im verschlüsselten Modus gilt die Benutzerberechtigung; OUC wird ignoriert. Im ungeschützten Modus autorisiert OUC alle unterstützten Befehle oder keine.

Fünf fehlgeschlagene Logins verhängen eine 30-Sekunden-Server-weiter Login-Block. Dies kann vorübergehend auch andere Nutzer betreffen. Benutzerpasswörter werden als gesalzen gespeichert PBKDF2-HMAC-SHA256 Hashes; die Administrationsschnittstelle exportiert keine Passwörter oder Private Keys.

4.4 Geräteidentität, CA-Zertifikate und Erneuerung

Neutron Anwendung URI ist:

urn:preciz:cs-neutron:<MID>

Das generierte Zertifikat enthält diesen URI, den Kleinbuchstaben <MID>.local Hostname und die Geräte-IP zur Generationszeit. Halten Sie die Adresse stabil oder Problem ein Ersatzzertifikat mit den von den Kunden verwendeten Adressen.

Ein CA-Zertifikat ist für eine explizit vertrauenswürdige selbstsignierte Anwendung nicht erforderlich Bescheinigungen. Für firmengeführte PKI:

  1. Wählen Erstellen und Herunterladen von CSR. Der CSR verwendet den vorhandenen Geräteschlüssel.

  2. Lassen Sie die CA ein OPC UA-Anwendungszertifikat ausstellen, das die Anwendung behält URI in SAN und entsprechende Server / Client erweiterte Schlüsselnutzungen und Nutzung digitaler Signaturen/Schlüsselverschlüsselungen.

  3. Importieren Sie es als CA-signiertes Produktzertifikat. Ihr privater Schlüssel muss übereinstimmen Der vorhandene Schlüssel von Neutronen. Installieren Sie die erforderliche CA-Kette im Client.

  4. Um CA-ausgestellten Kunden zu vertrauen, importieren Sie die ausstellende Wurzel als Vertrauenswürdiger Kunde Zertifikat oder CA. Zwischengeschaltete CAs als Zwischenemittent CA. Ein Zwischenemittenteneintrag allein gewährt kein Vertrauen.

  5. Wird eine Widerrufsprüfung durchgeführt, so sind die von CA unterzeichneten GRL wie folgt einzugeben: Bescheinigung Widerrufsliste Aktualisieren Sie sie vor Ablauf. Importieren Sie zuerst ihre emittierenden CAs.

Unterstützte Einfuhren sind PEM oder DER, bis zu 8192 Bytes pro Datei. Jeder Vertraute, abgelehnt, Emittent und CRL-Speicher hält bis 12 Einträge. Altes entfernen Sie werden abgelehnt, wenn der Speicher voll ist. Installierte CRLs werden auf Daten überprüft und Emittentensignatur; abgelaufene CRLs lehnen betroffene neue Verbindungen ab. ohne installierte GRLs, eine Widerrufsprüfung wird nicht durchgeführt. CRLs werden nicht heruntergeladen automatisch; OCSP- und GDS-Verwaltung werden nicht bereitgestellt.

Erneuern Sie ein Zertifikat, indem Sie ein CSR erstellen und das erneuerte Zertifikat importieren. Ein abgelaufenes Gerätezertifikat verhindert einen sicheren Start. Geräteidentität ersetzen entfernt den aktuellen Schlüssel/Zertifikat/CSR und generiert beim nächsten Mal eine neue Identität sicheres Startup; Kunden müssen ihm wieder vertrauen. Benutzer und vertrauenswürdige Clients bleiben erhalten.

Benutzer und Zertifikatsspeicher überleben normale Neustarts und OTA-Updates. Löschung der Das Gerätedateisystem entfernt sie. Vor der Übertragung des Gerätebesitzes entfernen die vorherigen Benutzer und Vertrauenseinträge explizit.

5. Adressraum und Datendarstellung

5.1 Namespace und NodeIds

Vendor namespace URI:

urn:preciz:cs-neutron:weighing:1

Lösen Sie diesen URI in Server/NamespaceArray bei jeder Verbindung. Nicht Hard-Code Namespace-Index 1 oder 2. Die Version Suffix :1 gehört zum stabilen Namespace URI; die herunterladbare Modellversion ist 1.3.0.

Beispielformulare für dieselbe Variable:

nsu=urn:preciz:cs-neutron:weighing:1;s=Scale.Gross
ns=2;s=Scale.Gross

Das numerische Formular ist nur gültig, wenn der Server derzeit diesen URI Index 2. Wenn ein Kunde nicht akzeptiert nsu= Syntax, lösen Sie die URI und bauen Sie die numeric-index NodeId. Vendor Identifier sind case-sensitive Strings, einschließlich Die Zeiten in Scale.Gross.

Tabelle 6

Standort durchsuchen

Object String NodeId

Objects / CS-NEUTRON Scale

Scale

Objekte/Gerät

Device

Objekte / Server

Standardnamespace 0, numerische NodeId i=2253

Methoden müssen aufgerufen werden mit Scale als übergeordnete ObjectId und die Methode NodeId als MethodId.

5.2 Einheiten und numerische Präzision

Gross, Net und Tare werden als Double-Werte exportiert, angepasst an die konfigurierten Dezimalstellen. HR ist das hochauflösende Bruttogewicht vor der Rundung für die Anzeige, weder Nettogewicht noch ADC-Rohwert. Jeder Gewichtswert verwendet die aktuelle Einheit Scale.Unit; OPC UA rechnet keine Einheiten um. Der Transportdatentyp Double erhöht die Sensorgenauigkeit nicht.

Binäre Gleitkommawerte repräsentieren nicht jede Dezimalstelle genau. Format Anzeigegewichte mit Scale.Decimals und Verwendung Scale.Division wie das Wiegen Schritt. HR kann in wissenschaftlicher Notation erscheinen: 9.31e-5 kg Mittel 0.0000931 kg.

5.3 Zeit, Snapshots und Qualität

Neutron kopiert die neuesten Wägewerte in OPC UA Snapshot ca. alle min(OUI, 50) Millisekunden, je nach Verfügbarkeit der Akquisition. Lesung oder durch das Abonnement wird keine weitere ADC-Konvertierung initiiert.

SourceTimestamp identifiziert die Mess-Snapshot-Zeit, wenn das Gerät taktet synchronisiert ist. Sie fehlt vor der Synchronisation. ServerTimestamp ist die vom Server bereitgestellter Zeitstempel für DataValue; er muss nicht gleich SourceTimestamp sein. UTC wird für OPC UA Zeitstempel verwendet.

Separate Lese- oder Abonnementbenachrichtigungen können sich auf verschiedene Snapshots beziehen. Verwendung ReadMeasurement oder ein erfasstes Ergebnis, wenn Felder zusammengehören müssen. Ein unveränderter überwachter Wert muss nicht in jedem Intervall eine neue Benachrichtigung erzeugen.

Tabelle 7

DataValue Statuscode

Bedeutung / Client-Aktion

Gut

Wert ist verwendbar; prüfen Sie den Status Stable und native nach Bedarf

BadNoCommunication

Keine Momentaufnahme oder mehr als zwei Sekunden ohne neue Momentaufnahme; Live-Messung verwerfen

BadSensorFailure

Native Scale Error; inspect ErrorCode

BadOutOfRange

Unter- oder Überlastung; Rückwurfmessung

Die Datenqualität gilt für Gewichtswerte, ADC und Stable. Status, ErrorCode und Unit bleiben bei nativen Waagenfehlern lesbar, werden jedoch veraltet, wenn keine neuen Momentaufnahmen eintreffen. Die Diagnosewerte für Befehle und Erfassungen bleiben unabhängig von der Qualität der aktuellen Waagendaten lesbar. Metadaten sind Konfigurationsinformationen. Ihr Status Good belegt nicht, dass das aktuelle Wägeergebnis gültig ist.

6. Datenreferenzdaten

Alle Einträge unten sind read-only. NodeIds sind Vendor String Identifier, es sei denn, als Standard-Namespace 0 identifiziert. Alle Skalareinträge haben ValueRank −1.

6.1 Live-Messung und Konfiguration

Tabelle 8

String NodeId

Typ

Einheit

Beschreibung

Scale.Gross

Doppelt

Scale.Unit

Gerundetes Bruttogewicht

Scale.Net

Doppelt

Scale.Unit

Abgerundetes Nettogewicht

Scale.Tare

Doppelt

Scale.Unit

Angewandtes Tara

Scale.HR

Doppelt

Scale.Unit

ungerundetes, hochauflösendes Bruttogewicht

Scale.ADC

Int32

ADC zählt

Vorhandener ADC-Wert kopiert mit dem Snapshot; keine zusätzliche Hardware gelesen

Scale.Stable

Boolesches

—

Stabilitätskennzeichen der Waage

Scale.Status

UInt16

—

Status der Angabe; nachstehende Tabelle

Scale.ErrorCode

UInt16

—

Native Error; 1 bedeutet kein Fehler

Scale.Unit

String

—

Konfigurierte Einheit, wie kg oder g

Scale.Decimals

UInt16

Dezimalstellen

Dezimalstelle für angezeigtes Gewicht

Scale.Division

Doppelt

Scale.Unit

Aktive Wägeabteilung

Scale.Capacity

Doppelt

Scale.Unit

Aktive Reichweitenkapazität

Scale.Filter

UInt16

—

Aktive FT-Einstellung, 1-1023

Scale.HRFilter

Boolesches

—

FC-Einstellung: falsch aus, richtig eingeschaltet; Steuerelemente ADC-Chopper

ADC ist kein separater Per-Load-Cell-Scan. Es wird keine mV-Variable belichtet. Trotz seiner Name, HRFilter steuert die bestehende FC/ADC-Chopper-Funktion, keine Software Filter, der ausschließlich auf die OPC UA HR-Variable angewendet wird.

6.2 Native Scale Status

Tabelle 9

Scale.Status

Bedeutung

0

Unterlast

1

innerhalb des Nullbereichs

2

instabil

3

Stabil

4

Überlast

255

Uninitialisierter Snapshot

Verwendung Scale.Stable als Stabilitätsflag. Scale.Status und OPC UA StatusCode sind separate Konzepte; ein nativer Status von 3 ist kein OPC UA Qualitätscode.

6.3 Native Error Codes

Tabelle 10

Scale.ErrorCode

Bedeutung

1

Kein Fehler

99

Befehls-Timeout

98

Unbekannter Befehl

97

Waage deaktiviert

96

Kalibrierung fehlt

95

Fehlende metrologische Daten

94

Fehler im ADC-Statusregister

93

ADC-Referenzfehler

92

Fehler im Umrechnungsmodus des ADC

91

ADC-Taktkonfigurationsfehler

90

ADC-Einzyklus-Konfigurationsfehler

89

Konfigurationsfehler des ADC-Abweisfilters

88

ADC-Filterfehlanpassung

87

Fehler bei der Konfiguration des ADC-Kanals

86

ADC-Chopper-Inkongruenz

85

ADC-Bipolarmodusfehler

84

ADC externer Referenzkonfigurationsfehler

83

ADC-Gewinninkongruenz

82

ADC-Mittelungsfilterfehler

6.4 Messeigenschaften

Eigenschaften haben den folgenden Anbieter String NodeIds. Ihre BrowseNamen sind in Namespace 0, z.B. 0:EngineeringUnits.

Tabelle 11

String NodeId-Muster

Typ

Bedeutung

Scale.Gross.EngineeringUnits, Scale.Net.EngineeringUnits, Scale.Tare.EngineeringUnits, Scale.HR.EngineeringUnits

EU-Informationen

Einheitenmetadaten

Scale.Gross.EURange, Scale.Net.EURange, Scale.Tare.EURange, Scale.HR.EURange

Reichweite

Niedriger/hoher Engineering-Bereich

Scale.Gross.ValuePrecision, Scale.Net.ValuePrecision, Scale.Tare.ValuePrecision

Doppelt

Exportierte Dezimalstellenzahl, gleich Dezimalstellen

EURange ist [0, Capacity], außer Nettonutzungen [-Capacity, Capacity]. Ingenieurwesen Range ist Metadaten, keine Anweisung zum Clampen von Werten. ValuePrecision ist eine Dezimalstellenzahl, nicht die Division oder eine Genauigkeitsspezifikation. HR hat keine ValuePrecision Eigenschaft.

EngineeringUnits verwendet UN/CEFACT-Codes für kg (4933453), g (4674125), lb (4997714) und oz (5197402). Andere Einheitensymbole haben UnitId −1 und einen leeren Standardsnamensraum. Aktualisieren Sie die Metadaten nach Änderungen an Einheiten, Wägebereich oder Waagenkonfiguration.

6.5 Beherrschung und Erfassung von Diagnosen

Tabelle 12

String NodeId

Typ

Beschreibung

Scale.LastCommandId

UInt32

ID des zuletzt angenommenen Tarier-, Nullstell- oder Filterbefehls

Scale.LastCommandState

UInt16

0 Leerlauf; 1 Schlange; 2 Ausführung; 3 gelungen; 4 fehlgeschlagen

Scale.LastCommandResult

String

Native Response oder Ablehnungsgrund

Scale.LastCaptureId

UInt32

Letzte akzeptierte Stable-Capture-Anfrage-ID

Scale.LastCaptureState

UInt16

0 Leerlauf; 1 ausstehend; 2 vollständig; 3 Timeout

Command IDs und Capture IDs sind getrennte Sequenzen. Beides wird von allen geteilt Clients, lokal für den laufenden Dienst und Reset, wenn der Dienst neu gestartet wird.

6.6 Geräteidentifizierung

Tabelle 13

String NodeId

Typ

Beschreibung

Device.Manufacturer

String

PRECIZ

Device.Model

String

Gerätemodell

Device.SerialNumber

String

MID

Device.SoftwareRevision

String

Firmware-Version

Device.HardwareRevision

String

Hardwareversion

Device.DeviceName

String

Konfigurierter Gerätename

Identitätswerte werden geladen, wenn OPC UA startet. Starten Sie den Dienst nach dem Wechsel neu den Gerätenamen zum Aktualisieren von DeviceName.

6.7 Standardserverinformationen

Die folgenden Pfade beziehen sich auf Objekte / Server und verwenden Sie Namespace 0.

Tabelle 14

Browsing Path

Typ/Wert

ServerArray

String[]; Index 0 ist die Geräteanwendung URI

NamespaceArray

String[]; index 0 ist der OPC UA-Namespace, index 1 ist die Geräteanwendung URI; lösen Sie den Vendor-URI in diesem Array

Serverstatus

ServerStatusDataType

ServerStatus/StartTime, CurrentTime

DateTime, erklärt UtcTime

ServerStatus/State

ServerState; 0 läuft während des normalen Betriebs

ServerStatus/SecondsTillShutdown

UInt32; 0, wenn kein Shutdown geplant ist

ServerStatus/ShutdownReason

LokalisiertText

ServerStatus/BuildInfo

BuildInfo: ProductUri, ManufacturerName, ProductName, SoftwareVersion, BuildNumber, BuildDate

ServiceLevel

Byte; 255 im Normalbetrieb

Auditierung

Boolean; falsch

VendorServerInfo

Verkäuferinformationsobjekt

ServerRedundanz/RedundanzUnterstützung

Redundanzunterstützung; 0 Keine

ServerKapazitäten/ServerProfileArray

String[]; Implementierungsprofil/Facetten-URIs

ServerKapazitäten/LocaleIdArray

LocaleId[]; en

ServerCapabilities/MinSupportedSampleRate

Dauer in ms; aktives OUI Minimum

ServerCapabilities/MaxBrowseContinuationPoints

UInt16; 5 pro Sitzung

ServerCapabilities/SoftwareCertificates

SignedSoftwareCertificate[]; leer

ServerCapabilities/ModellingRules, AggregateFunctions

Ordner

ServerKapazitäten/OperationLimits

In Abschnitt 9 aufgeführte Limits pro Anfrage

Standard-Array-Variablen haben ValueRank 1 und ArrayDimensionen [0]; Null bedeutet eine nicht spezifizierte maximale Länge. ServerProfileArray identifiziert Micro Embedded Device 2017 Implementierungsziel und aktive Transport-/Methoden-/Sicherheitsaspekte. Dieser Profilbezeichner ist kein Zertifizierungszeichen der OPC Foundation.

6.8 Aktiver Kanal — ActiveChannel

Scale.ActiveChannel ist eine UInt16 Variable, die den aktuell aktiven Wägekanal anzeigt. Es ist read-only; Wählen Sie einen Kanal mit Scale.SetChannel. NodeSet2 1.3.0 unterstützt die Auswahl von Kanälen 1–4. Lösen Sie den Namespace-URI beim Verbinden, wie in Abschnitt 5.1 beschrieben.

7. Methoden und Befehlsausführung

7.1 Zusammenfassung der Methode

Aufrufen Sie jede Methode auf Parent Object Scale. Geben Sie skalare Argumente mit dem genaue OPC UA-Typen gezeigt; nicht ersetzen String, Int32 oder Double für eine UInt32 oder boolesches Argument.

SetChannel verwendet Channel: UInt16 (1–4) und gibt RequestId: UInt32 zurück; siehe Abschnitt 7.9.

Tabelle 15

Methode String NodeId

Eingabeargumente

Output

Genehmigung

Scale.ReadMeasurement

Keine

Elf Messfelder, Abschnitt 8.1

Lesen

Scale.CaptureStableWeight

TimeoutMs: UInt32

RequestId: UInt32

Ausführen

Scale.GetCapturedMeasurement

RequestId: UInt32

Elf Messfelder, Abschnitt 8.1

Lesen

Scale.TareCurrent

Keine

RequestId: UInt32

Ausführen

Scale.SetTare

Wert: doppelt

RequestId: UInt32

Ausführen

Scale.Zero

Keine

RequestId: UInt32

Ausführen

Scale.ClearTare

Keine

RequestId: UInt32

Ausführen

Scale.SetFilter

Wert: UInt16

RequestId: UInt32

Ausführen

Scale.SetHRFilter

Enabled: Boolean

RequestId: UInt32

Ausführen

7.2 TareCurrent

Tariert das aktuelle stabile Bruttogewicht mithilfe der nativen Operation T. Dabei wird die Tara auf das Bruttogewicht gesetzt und das Nettogewicht wird null. Der Brutto-Nullpunkt bleibt unverändert. Die Waage muss den Tarierbefehl für stabiles Gewicht innerhalb ihrer Befehlswartezeit annehmen.

Beispiel mit 1,11 kg auf der Waage: Brutto bleibt 1,11 kg, Tare wird 1,11 kg, und netto wird 0.00 kg. Eine native Erfolgsreaktion ähnelt T S 1.11 kg.

7.3 SetTare

Setzt eine vorgegebene Tara in Scale.Unit mithilfe der nativen Operation TA. Der Wert muss endlich, nicht negativ, höchstens 1,000,000,000 und nicht größer als die Höchstlast sein. Die übernommene Tara wird auf den Teilungswert der Waage gerundet. Lesen Sie nach Abschluss Scale.Tare aus, um den tatsächlich übernommenen Wert zu erhalten. Beispieleingabe: Double 0.250, wenn Unit kg ist.

7,4 Null

Ausführt native Z, abhängig von der Stabilität und dem konfigurierten Nullbereich. am Erfolg Der Nullpunkt wird angepasst und das vorhandene angewendete / voreingestellte Tara wird gelöscht. Die native Erfolgsreaktion ist Z A. Dies unterscheidet sich von TareCurrent.

7.5 ClearTare

Ausführt native TAC, das aufgebrachte und voreingestellte Tara entfernen. Brutto wird einbehalten und Netto-Rückgabe an Gross. Es gibt keine Input-Argumente.

7.6 SetFilter

Der Wert ist UInt16, einschließlich 1–1023. Damit wird FT für den aktiven Waagenkanal über die vorhandene Filterkonfiguration eingestellt. Null und Werte über 1023 ergeben BadOutOfRange. Beispiel: UInt16 512.

7.7 SetHRFilter

Ermöglicht ist Boolean: true FC/ADC-Chopper ermöglicht, false Deaktiviert es. A numerisch Ein mit einem numerischen OPC UA-Typ gesendeter Wert ist kein Boolean und wird abgelehnt.

FT und FC werden aktiviert und für den aktiven Kanal durch den nativen Konfigurationshandler. Hardware-Verifizierungsfehler führt zu einem erfolglosen Befehlsergebnis. Der Erwerb kann pausieren, während die Einstellung angewendet wird. Lesen Scale.Filter oder Scale.HRFilter nach Abschluss, um die aktive Einstellung zu sehen.

7.8 Asynchrone Befehlsfolge

Für TareCurrent, SetTare, Zero, ClearTare, SetChannel, SetFilter und SetHRFilter:

  1. Rufen Sie die Methode auf und behalten Sie ihre zurückgegebene RequestId bei.

  2. Lesen oder abonnieren Sie LastCommandId, LastCommandState und LastCommandResult.

  3. Verknüpfen Sie das Ergebnis nur mit einer übereinstimmenden LastCommandId.

  4. Staat 3 bedeutet Erfolg; Staat 4 bedeutet Versagen. Die Staaten 1 und 2 sind anhängig.

  5. Lesen Sie die betroffenen Prozess-/Konfigurationswerte nach erfolgreichem Abschluss.

Ein Good-Ergebnis des Call bestätigt die Annahme, nicht den Abschluss. Nur einer dieser Befehle kann gleichzeitig in der Warteschlange stehen oder ausgeführt werden; ein weiterer erhält BadResourceUnavailable. Bestehende Verriegelungen für Waagenstabilität, Verfügbarkeit, Beschäftigtstatus und Anwendungszustand gelten weiterhin.

Der Befehlsschlitz und die Diagnose des letzten Ergebnisses sind geräteweit. Koordinieren Sie Autoren wenn zwei Clients Befehle ausgeben können: Ein späterer Befehl kann den zuletzt abgeschlossenen ersetzen Diagnose, bevor ein anderer Kunde sie liest. Sie sind keine Kommandogeschichte.

Request IDs sind keine dauerhaft gespeicherten Operationskennungen. Prüfen Sie nach einem Verbindungsverlust den Zustand der betroffenen Waage, bevor Sie einen Befehl mit unbekanntem Ergebnis wiederholen. Ein Dienstneustart löscht die Diagnosewerte und bricht noch nicht abgeschlossene, von OPC UA verwaltete Waagenbefehle ab. Ein bereits ausgeführtes Tarieren, Nullstellen oder eine Einstellungsänderung wird dadurch nicht rückgängig gemacht.

7.9 SetChannel — Wählen Sie einen Wägekanal

Rufen Sie Scale.SetChannel am Objekt Scale auf. Das Eingabeargument Channel ist ein skalarer UInt16 mit einem Wert von 1–4; andere Werte werden abgewiesen. Das Ausgabeargument RequestId ist ein UInt32.

Der Aufruf erfordert die Berechtigung für Befehle und initialisiert die Waage neu. Stimmen Sie die Ausführung mit anderen Befehlen ab und folgen Sie dem asynchronen Ablauf in Abschnitt 7.8. Lesen Sie den gewählten Kanal aus Scale.ActiveChannel aus.

8. Konsistente Messungen und stabile Erfassung

8.1 ReadMeasurement Output

ReadMeasurement() Gibt sofort den letzten gültigen Snapshot zurück. Weder auf Stabilität wartet oder eine neue ADC-Messung anfordert. GetCapturedMeasurement Gibt die gleiche Ausgabesignatur für ein eingefrorenes stabiles Ergebnis zurück.

Tabelle 16

Position (Null-basiert)

Argumentation

OPC UA-Typ

Bedeutung

0

MessungId

UInt64

Nummer der Momentaufnahmesequenz

1

Brutto

Doppelt

Bruttogewicht

2

Netto

Doppelt

Nettogewicht

3

Unkraut

Doppelt

Angewandtes Tara

4

HR

Doppelt

Hochauflösendes Bruttogewicht

5

Stabil

Boolesches

Stabilität dieses Snapshot

6

Status

UInt16

Status auf nativer Ebene

7

Fehlercode

UInt16

Fehlercode auf nativer Ebene

8

Einheit

String

Einheit für dieses Ergebnis

9

Zeitstempel

Datum Uhrzeit

Snapshot UTC-Zeit oder Null, wenn unsynchronisiert

10

TimeSynchronisiert

Boolesches

Ob Timestamp als Kalenderzeit verwendbar ist

Alle Felder gehören zu einem Snapshot. MeasurementId Inkremente pro OPC UA Snapshot, nicht pro physischer ADC-Konvertierung und Resets mit dem Dienst. UInt64 erhalten Präzision beim Speichern. ADC, Metadaten und Filter sind separate Live-Knoten und nicht in diesem Ergebnis der Elf-Feld-Methode enthalten sind.

Wenn TimeSynchronized falsch ist, interpretieren Sie Timestamp nicht als Kalenderdatum. ReadMeasurement gibt BadNoCommunication, BadSensorFailure oder BadOutOfRange zurück wenn der live-snapshot fehlt/stal ist, einen nativen fehler aufweist oder außerhalb der reichweite liegt.

8.2 CaptureStableWeight und GetCapturedMeasurement

  1. Anruf CaptureStableWeight(TimeoutMs) mit UInt32 100-60000 ms. Zum Beispiel: 5000 ermöglicht bis zu fünf Sekunden für eine gültige stabile Messung. Null ist ungültig.

  2. Behalten Sie die zurückgegebene UInt32 RequestId.

  3. Anruf GetCapturedMeasurement(RequestId) Diese ID verwenden. Während er anhängig ist, ist es gibt BadWaitingForInitialData zurück. Wiederholen Sie in einem moderaten Intervall wie 100 ms.

  4. Beim Erfolg speichern Sie das elf-Feld-Ergebnis zusammen mit der Erfassung RequestId.

Alternativ abonnieren Sie LastCaptureId und LastCaptureState und rufen Sie dann ab das Ergebnis, wenn die Übereinstimmungsanforderung den Zustand 2 erreicht.

Tabelle 17

LastCaptureState

Bedeutung

0

Idle

1

Ausstehend

2

Vollständig; Ergebnis verfügbar

3

Timeout

Der erfasste Snapshot muss veröffentlicht werden nach Die Anfrage beginnt und muss stabil, frisch, frei von nativen Fehlern und in Reichweite sein. Ungültige Snapshots werden übersprungen, bis ein geeigneter ankommt oder das Timeout abläuft. Wenn die Waage ist bereits stabil, der nächste gültige Snapshot kann die Aufnahme sofort abschließen; Es ist kein instabiler zu stabiler Übergang oder eine zusätzliche Haltedauer erforderlich.

Die Operation tariert die Waage nicht, stellt sie nicht auf null und blockiert keine anderen Clients. Es kann nur eine Erfassung gleichzeitig ausstehen. Für das gesamte Gerät gibt es ein festgehaltenes Ergebnis, das alle Clients gemeinsam nutzen. Es bleibt unverändert, auch wenn sich der aktuelle Gewichtswert ändert oder nicht mehr verfügbar ist. Eine neue Erfassung ersetzt die vorherige Anfrage bzw. deren Ergebnis. Es gibt keinen Erfassungsverlauf.

Tabelle 18

GetCapturedMessergebnis

Bedeutung

Gut

Gefrorenes Ergebnis zurückgegeben

BadWaitingForInitialData

Matching Capture noch ausstehend

BadTimeout

Abgleichende Erfassung abgelaufen ohne gültige stabile Messung

BadNotFound

ID ist null, unbekannt, ersetzt oder nach dem Neustart nicht mehr verfügbar

BadNodata

Kein abgeschlossenes Ergebnis für den übereinstimmenden Erfassungszustand

Verwenden Sie den Capture RequestId, nicht die MeasurementId des Ergebnisses, als Eingabe an GetCapturedMeasurement. Die Erfassung kann nach dem Einleiten des Clients beendet werden Trennen. Es kann nach dem erneuten Verbinden mit der gleichen ID abgerufen werden, wenn die Der OPC UA-Service läuft weiter. Ein Service-Neustart löscht ausstehende Erfassungen, gespeicherte Ergebnisse und IDs; koordinierte Erfassungsanforderungen zwischen Clients.

9. Abonnements, Zeitplanung und Kapazitätsbeschränkungen

9.1 Zeitplanung

Tabelle 19

Parameter

Bedeutung

OUI

Konfigurierte Untergrenze für Probenahme und Veröffentlichung

Probenahmeintervall

Wie oft ein überwachter Gegenstand beprobt wird

Veröffentlichungsintervall

Wie oft das Abonnement Benachrichtigungen in der Warteschlange veröffentlichen kann

Warteschlange

Anzahl der Meldungen, die pro überwachtem Posten gespeichert wurden

Haltbar

Zeigt ein aktives Abonnement an, wenn keine Benachrichtigungen vorliegen

Beginnen Sie mit 100-250 ms und Warteschlangengröße 1 für ein Live-Display. Für den Schnellsten verfügbares Update, OUI auf 10 ms setzen, nach dem Speichern wieder verbinden und 10 ms anfordern Beprobung/Veröffentlichung. Verwenden Sie die überarbeiteten Intervalle des Servers in der Clientlogik.

Sampling schneller als die physische Akquisitionsrate schafft keine neuen Messungen. Netzwerklatenz, Verschlüsselung, Clientload und Veröffentlichungseinstellungen die beobachtete Reaktionszeit beeinflussen. UAExpert's Server Status / Response Time ist nicht das Probenahme- oder Veröffentlichungsintervall des Abonnements.

9.2 Kapazitäts- und pro Anfrage-Limits

Tabelle 20

Ressourcen

Begrenzung

Sicherheitsanschlüsse

4 insgesamt einschließlich Reconnect-Überlappung

Sitzungen

2 gleichzeitig

Session Timeout

Maximale ausgehandelte Timeout 30 Sekunden

Abonnements

4 insgesamt; 2 pro Sitzung

Überwachte Posten

64 insgesamt; 32 pro Abonnement

Warteschlange für überwachte Posten

1–16 Werte pro Posten

Ausstehende Veröffentlichungsanfragen

4 pro Sitzung

Warteschlange für die Weiterleitung

16 Nachrichten pro Abonnement

Fortsetzungspunkte durchsuchen

5 pro Sitzung

Mindeststichprobenahme/Veröffentlichung

OUI, 10–5000 ms; standardmäßig 100 ms

Lesen/Schreiben/Browsen

32 pro Antrag

RegisterNodes / TranslateBrowsePaths Operationen

32 pro Antrag

Methode Call-Operationen

8 pro Antrag

Transaktionen mit überwachten Positionen

32 pro Antrag

Dies sind serverweite Summen, es sei denn, ein Pro-Session / Pro-Abonnement-Bereich ist angegeben. Wenn die Anforderungswarteschlange Veröffentlichen voll ist, erhält die älteste ausstehende Anforderung BadTooManyPublishRequests, so dass eine neue Anforderung in die Warteschlange gestellt werden kann. Bestätigungen und Republish arbeitet in der begrenzten Retransmissionswarteschlange. Das Write Operations Limit Es macht keine schreibgeschützten Variablen beschreibbar.

Schließen Sie Sitzungen sauber. Ein getrennter Client kann seine vorherige Sitzung verlassen Einen Slot besetzen, bis er abläuft. Wiederverwenden/Reaktivieren einer bestehenden Sitzung, in der Unterstützt; andernfalls auf Ablauf warten. Eine neue Serverinstanz kann nicht reaktiviert werden eine Sitzung vor dem Neustart des Dienstes: Erstellen einer Sitzung, Auflösen von Namespaces und Abonnements neu erstellen. Nicht verbrauchende TCP-Clients können nach einem Frist für die Übermittlung von einer Sekunde.

10. Integrationsbeispiele

10.1 UAExpert: Stable Capture

  1. Neutron NS OPC UA Tutorial auf YouTube ansehen

    Öffnen Sie CS-NEUTRON Scale, klicken Sie mit der rechten Maustaste auf CaptureStableWeight und wählen Sie Call.

  2. Geben Sie TimeoutMs ein 5000 und klicken Anruf. Notieren Sie die zurückgegebene RequestId.

  3. Offen GetCapturedMeasurement Geben Sie die gleiche RequestId ein.

  4. Klicken Anruf. Wenn anhängig, rufen Sie GetCapturedMeasurement erneut mit der gleichen ID auf.

  5. Lesen Sie Gross, Net, Tare, HR, Stable, Status, ErrorCode, Unit und Timestamp von das zurückgegebene Ergebnis. Lassen Sie die bestehende Erfassungsanfrage während des Wartens laufen; Starten Sie nicht wiederholt neue Captures.

10.2 Python: sichere Verbindung, kohärentes Lesen und optionale Erfassung

Installieren Sie das Clientpaket in einer virtuellen Python-Umgebung:

python -m pip install asyncua

Bereiten Sie ein OPC UA Client-Anwendungszertifikat und einen privaten Schlüssel vor. Sein SAN Anwendungs-URI muss mit CLIENT_URI unten übereinstimmen. Genehmigen Sie Ihr Zertifikat auf Neutron und laden Sie das Zertifikat von Neutron als neutron.der. Ersetzen Sie den Endpunkt, Benutzername und Client-URI mit Ihren Werten. Die private Schlüsseldatei in diesem Beispiel ist für den Python-Client zugänglich; es ist nicht Neutrons privater Schlüssel.

import asyncio
import getpass

from asyncua import Client, ua
from asyncua.crypto.security_policies import SecurityPolicyBasic256Sha256
from asyncua.ua.uaerrors import UaStatusCodeError

URL = "opc.tcp://192.168.50.73:4840"
NS_URI = "urn:preciz:cs-neutron:weighing:1"
CLIENT_URI = "urn:example:neutron-client"
FIELDS = ("MeasurementId", "Gross", "Net", "Tare", "HR", "Stable",
          "Status", "ErrorCode", "Unit", "Timestamp", "TimeSynchronized")
CAPTURE = False  # Set True when logged in with command permission.


async def main():
    client = Client(URL, timeout=10)
    client.application_uri = CLIENT_URI
    await client.set_security(
        SecurityPolicyBasic256Sha256,
        certificate="client.der",
        private_key="client-key.pem",
        server_certificate="neutron.der",
        mode=ua.MessageSecurityMode.SignAndEncrypt,
    )
    client.set_user(input("Username: "))
    client.set_password(getpass.getpass("Password: "))

    async with client:
        ns = await client.get_namespace_index(NS_URI)
        scale = client.get_node(ua.NodeId("Scale", ns))

        def method(name):
            return ua.NodeId("Scale." + name, ns)

        values = await scale.call_method(method("ReadMeasurement"))
        result = dict(zip(FIELDS, values))
        print("Current snapshot:", result)

        if CAPTURE:
            request_id = await scale.call_method(
                method("CaptureStableWeight"),
                ua.Variant(5000, ua.VariantType.UInt32),
            )
            deadline = asyncio.get_running_loop().time() + 7
            while True:
                try:
                    values = await scale.call_method(
                        method("GetCapturedMeasurement"),
                        ua.Variant(request_id, ua.VariantType.UInt32),
                    )
                    print("Capture", request_id, dict(zip(FIELDS, values)))
                    break
                except UaStatusCodeError as exc:
                    if exc.code != ua.StatusCodes.BadWaitingForInitialData:
                        raise
                    if asyncio.get_running_loop().time() >= deadline:
                        raise TimeoutError("Client capture wait expired") from exc
                    await asyncio.sleep(0.1)


asyncio.run(main())

ReadMeasurement erfordert gültige Live-Daten. Ausnahmen wie BadSensorFailure oder BadOutOfRange muss von der aufrufenden Anwendung behandelt werden. BadTimeout von GetCapturedMeasurement bedeutet, dass das Capture-Timeout des Servers abgelaufen ist; es ist keine Grund für die Wiederverwendung einer alten gespeicherten Messung als neue erfolgreiche Erfassung.

10.3 Python: Lebendgewicht abonnieren

Der folgende Code läuft innerhalb eines etablierten async with client Verbindung. Der Handler überprüft die Qualität, bevor er den Wert verwendet.

class WeightHandler:
    def datachange_notification(self, node, value, data):
        status = data.monitored_item.Value.StatusCode
        if status.is_good():
            print(node.nodeid.to_string(), value)
        else:
            print("Invalid measurement:", status)


ns = await client.get_namespace_index(NS_URI)
gross = client.get_node(ua.NodeId("Scale.Gross", ns))
subscription = await client.create_subscription(100, WeightHandler())
try:
    await subscription.subscribe_data_change(gross, queuesize=1)
    await asyncio.sleep(30)
finally:
    await subscription.delete()

Das angeforderte Veröffentlichungsintervall beträgt 100 ms. Konfigurieren der Beprobung überwachter Objekte durch die Client-Bibliothek nach Bedarf und ehrt überarbeitete Serverwerte.

10.4 SPS-Integrationssequenz

Verwenden Sie die OPC UA-Clientblöcke, die vom SPS-Hersteller geliefert werden. Resolve String NodeIds mit dem Vendor Namespace URI. Das Folgende ist ein Vendor-neutral Sequenz, keine spezifische Implementierung einer SPS-Programmiersprache:

CONNECT -> TRUST / AUTHENTICATE -> RESOLVE NAMESPACE URI
        -> RESOLVE Scale object and required variable/method NodeIds
        -> CREATE SUBSCRIPTION -> MONITOR LIVE DATA

On a stable-result request:
  Call Scale.CaptureStableWeight(TimeoutMs := UInt32(5000))
  Save returned RequestId
  Call Scale.GetCapturedMeasurement(RequestId)
    BadWaitingForInitialData -> wait 100 ms and repeat retrieval
    Good                    -> store the eleven fields as one record
    BadTimeout              -> report no stable result
    Other failure           -> handle the error; do not use old data

On tare request:
  Call Scale.TareCurrent()
  Save returned command RequestId
  Wait for matching LastCommandId and LastCommandState 3 or 4
  On success read Gross / Net / Tare; on failure read LastCommandResult

Zuordnung von UInt64 MeasurementId zu einem geeigneten PLC-Integer-Typ. Senden Sie keine a numerischer Boolescher Ersatz für SetHRFilter. Serialisieren von Befehlen und Stable-Capture Eigentum an der SPS/Anwendung, wenn mehrere Clients über eine Befehlsberechtigung verfügen.

11. Fehlerbehebung, Downloads und Kompatibilität

11.1 Verbindungs- und Methodenfehler

Tabelle 21

Symptom / Status

Sinn und Handlung

BadCommunicationError / Verbindung abgelehnt

Bestätigen Sie, dass OPC UA aktiviert ist, Endpunkt-IP/Port, ausgewählte Netzwerkroute und Firewall. Das Startprotokoll muss enthalten OPC UA listening on port ...

BadCertificateUntrusted

Vertrauen Sie Neutron im Client und genehmigen Sie das Client-Zertifikat in Neutron oder installieren Sie die entsprechende CA-Kette

Zeit der Bescheinigung/URI-Fehler

Synchronisieren Sie Uhren und verwenden Sie ein Zertifikat mit gültigen Daten und der konfigurierten Anwendungs-URI des Clients

BadIdentityTokenAbgelehnt / BadUserAccessDenied

Verwenden Sie den korrekten Benutzernamen / Passwort und die erforderliche Befehlsberechtigung; Warten Sie den 30-Sekunden-Block nach wiederholten Anmeldefehlern ab

BadTooManySessions / Sitzungslimit erreicht

Zwei slots sind belegt; trennen sie einen anderen client oder warten sie, bis eine verlassene sitzung abläuft.

BadNodeIdUnbekannt

Lösen Sie den Vendor Namespace URI erneut auf, überprüfen Sie die fallsensitive String NodeId und Firmware/Modell-Kompatibilität

BadTypeMismatch

Verwenden Sie den genauen skalaren Argumenttyp aus Abschnitt 7.1

BadOutOfRange auf CaptureStableWeight

Timeout muss UInt32 100–60000 sein; null ist ungültig

BadOutOfRange auf SetFilter / SetTare

Verwenden Sie FT 1-1023 oder ein endliches nicht negatives Tara innerhalb der Kapazität und 1e9

BadResourceUnverfügbar

Command Slot oder Capture Slot ist beschäftigt; warten Sie auf seine aktuelle Operation

Command Call ist gut, aber die Operation schlägt fehl

Überprüfen Sie die Übereinstimmung von LastCommandState und LastCommandResult; Gute nur bestätigte Warteschlangen

BadNotWritable auf Variable Writes

Prozessvariablen sind schreibgeschützt; verwenden Sie die unterstützte Methode

Erfassen BadWaitingForInitialData

Halten Sie die gleiche Capture-ID abrufen; der Server wartet auf eine gültige stabile Probe

BadTimeout einfangen

Keine qualifizierte stabile Stichprobe kam vor Ablauf der Frist

Erfassen BadNotFound

Verwenden Sie die zurückgegebene Erfassung RequestId; eine neuere Erfassung oder Dienstneustart ungültig die alte ID

Fehlende Serverfähigkeiten nach Firmware-Änderung

Aktualisieren Sie den Adressraum oder verbinden Sie sich erneut mit einem neuen Clientprojekt, um zwischengespeicherte Browserergebnisse zu verwerfen

Leer-/Stallmessungen

Lassen Sie die Messwerterfassung der Waage aktiviert. Prüfen Sie ErrorCode und den nativen Status sowie die Datenqualität von DataValue.

11.2 Downloads und zugehörige Handbücher

NodeSet2 beschreibt den Vendor-Adressraum, Methodenargumente, Referenzen und Typen für Offline-Modell-Tools. Ihre Namespace-Indizes sind lokal für diese XML-Datei; Lösen Sie den Namespace-URI auf dem Live-Gerät. Das XML enthält Modelldefinitionen, keine aktuellen Messungen oder ein Backup von Benutzern/Zertifikaten/Einstellungen. Laufzeit Intervalle und ausführbare Berechtigungen folgen der aktiven Gerätekonfiguration.

11.3 Version Kompatibilität

Tabelle 22

Informationsmodell

Schnittstellenzusätze

1.0

Basiswägewerte und Tara-Null-Methoden

1.1.0

Messmetadaten, Identifikation, kohärente Messung und stabile Erfassung

1.2.0

ADC, FT/FC-Werte und SetFilter/SetHRFilter

1.3.0

ActiveChannel und SetChannel zum Lesen des aktiven Kanals und zum Auswählen von Kanal 1-4.

Namespace-URI bleibt urn:preciz:cs-neutron:weighing:1. Bestehende Methode Unterschriften bleiben erhalten; ReadMeasurement/GetCapturedMeasurement gibt elf zurück Felder. Wählen Sie Firmware aus, die OPC UA und die von der Integration. Ein Firmware-Build ohne OPC UA kann keinen Endpunkt freigeben.

Häufig gestellte Fragen

Unterstützt Neutron verschlüsselte OPC UA?

Ja. Wählen Sie Basic256Sha256 / SignAndEncrypt, verwenden Sie einen Benutzernamen und ein Passwort und bauen Sie gegenseitiges Vertrauen in Anwendungszertifikate auf. Der ungeschützte None/Anonymous-Modus ist ebenfalls verfügbar.

Wie erhalte ich eine konsistente stabile Messung?

Rufen Sie CaptureStableWeight mit einem UInt32-Timeout von 100-60000 ms auf, behalten Sie die RequestId bei und rufen Sie das Ergebnis mit elf Feldern mit GetCapturedMeasurement mit derselben ID ab. Während Sie anhängig sind, holen Sie erneut ab, anstatt eine weitere Erfassung zu starten.

Bedeutet ein guter Methodenaufruf, dass der Befehl abgeschlossen ist?

Für Tare-, Null- und Filterbefehle bestätigt Good die Akzeptanz. Passen Sie LastCommandId mit der zurückgegebenen RequestId zusammen und warten Sie auf LastCommandState 3 (Erfolg) oder 4 (Ausfall).

Welche Namespace-URI und Modellversion sollte ich verwenden?

Lösen Sie urn:preciz:cs-neutron:weighing:1 in NamespaceArray auf jeder Verbindung. Das herunterladbare Informationsmodell ist Version 1.3.0; ein numerischer Namespace-Index wie 2 ist nur ein Beispiel.

Brauchen Sie Hilfe?

Benötigen Sie Hilfe bei Software, Konnektivität oder der Verwendung einer Lösung? Beschreiben Sie das Problem, damit wir beim nächsten Schritt helfen können.

Eine Anfrage vorbereiten →