CSCP — CloudScale Communication Protocol
CSCP-Befehlsreferenz für Neutron: Nachrichtenstruktur, Wägung, Konfiguration, Zählung, Kontrollwägung und digitale E/A.
PRECIZ · NEUTRON OPC UA
OPC UA-Integration für Neutron: sichere Verbindungen, Live-Wägedaten, stabile Erfassung und SPS/SCADA-Integration.
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
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. |
PRECIZ ist offiziell registriert OPC-Stiftung Mitglied. Den offiziellen PRECIZ-Eintrag im Mitgliedsverzeichnis der OPC Foundation ansehen.
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:
Schnittstelle | Verwendung |
|---|---|
Live-Variablen und Abonnements | Anzeige oder kontinuierliche Überwachung einzelner Werte |
| Erhalten Sie alle elf Messfelder aus einem aktuellen Snapshot |
| Einfrieren einer neuen gültigen stabilen Messung und Abrufen per Request-ID |
Verbindung zur lokalen Konfigurationsseite von Neutron oder zur Bluetooth-Konfiguration Versorgungsunternehmen. Verwenden Sie HTTPS oder authentifiziertes Bluetooth für die Zertifikats-/Benutzerverwaltung.
Wählen Sie die Netzwerkverbindungsschnittstelle aus und erhalten Sie die zugewiesene IP-Adresse.
Lassen Sie die Messwerterfassung der Waage in den Waageneinstellungen aktiviert.
Öffnen Sie die OPC UA Tab. Die Firmware muss melden, dass OPC UA verfügbar ist.
Für den verschlüsselten Zugriff erstellen Sie zuerst einen Benutzer in Benutzer & Berechtigungen.
In Einstellungen, aktivieren Sie den Server, wählen Sie den Sicherheitsmodus und behalten Hafen 4840 und Mindestintervall 100 ms für die Erstverbindung.
Klicken Sparen. Kopieren Sie die Verbindungsadresse mit Kopierendpunkt.
Beispiel-Endpunkt:
opc.tcp://192.168.50.73:4840Fügen Sie den Endpunkt als Server in UAExpert hinzu.
Im verschlüsselten Modus auswählen Basic256Sha256 / SignAndEncrypt und Benutzername/Passwort Authentifizierung. Im ungeschützten Modus auswählen Keine und Anonym.
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.
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.
Zug Brutto, Netto, Unkraut, Stabil, Status, Fehlercode und Einheit in Datenzugriffsansicht.
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.
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.
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.
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.
Öffnen Sie die OPC UA-Einstellungen von Neutron über HTTPS oder authentifiziertes Bluetooth.
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.
Wählen Nur lesen oder Lesen und Ausführen von Befehlen.
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.
Beim ersten sicheren Startup generiert Neutron seinen privaten Schlüssel und eine selbstsigniertes RSA-2048-Antragszertifikat, gültig für fünf Jahre.
Vergleichen Sie im Client Neutrons SHA-256 Zertifikat Fingerabdruck mit dem Fingerabdruck in der Konfigurationsschnittstelle angezeigt, dann vertrauen Sie ihm.
Versuchen Sie die verschlüsselte Verbindung. Neutron lehnt einen unbekannten Client ab Anwendungszertifikat und listet es unter Bescheinigungen als abgelehnt.
Klicken Refresh-Zertifikate und BenutzerVergleichen Sie den Fingerabdruck des Kunden, und klicken Genehmigung für diese Bescheinigung.
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.
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.
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:
Wählen Erstellen und Herunterladen von CSR. Der CSR verwendet den vorhandenen Geräteschlüssel.
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.
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.
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.
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.
Vendor namespace URI:
urn:preciz:cs-neutron:weighing:1Lö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.GrossDas 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.
Standort durchsuchen | Object String NodeId |
|---|---|
Objects / CS-NEUTRON Scale |
|
Objekte/Gerät |
|
Objekte / Server | Standardnamespace 0, numerische NodeId |
Methoden müssen aufgerufen werden mit Scale als übergeordnete ObjectId und die Methode
NodeId als MethodId.
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.
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.
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.
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.
String NodeId | Typ | Einheit | Beschreibung |
|---|---|---|---|
| Doppelt | Scale.Unit | Gerundetes Bruttogewicht |
| Doppelt | Scale.Unit | Abgerundetes Nettogewicht |
| Doppelt | Scale.Unit | Angewandtes Tara |
| Doppelt | Scale.Unit | ungerundetes, hochauflösendes Bruttogewicht |
| Int32 | ADC zählt | Vorhandener ADC-Wert kopiert mit dem Snapshot; keine zusätzliche Hardware gelesen |
| Boolesches | — | Stabilitätskennzeichen der Waage |
| UInt16 | — | Status der Angabe; nachstehende Tabelle |
| UInt16 | — | Native Error; 1 bedeutet kein Fehler |
| String | — | Konfigurierte Einheit, wie kg oder g |
| UInt16 | Dezimalstellen | Dezimalstelle für angezeigtes Gewicht |
| Doppelt | Scale.Unit | Aktive Wägeabteilung |
| Doppelt | Scale.Unit | Aktive Reichweitenkapazität |
| UInt16 | — | Aktive FT-Einstellung, 1-1023 |
| 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.
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.
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 |
Eigenschaften haben den folgenden Anbieter String NodeIds. Ihre BrowseNamen sind in
Namespace 0, z.B. 0:EngineeringUnits.
String NodeId-Muster | Typ | Bedeutung |
|---|---|---|
| EU-Informationen | Einheitenmetadaten |
| Reichweite | Niedriger/hoher Engineering-Bereich |
| 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.
String NodeId | Typ | Beschreibung |
|---|---|---|
| UInt32 | ID des zuletzt angenommenen Tarier-, Nullstell- oder Filterbefehls |
| UInt16 | 0 Leerlauf; 1 Schlange; 2 Ausführung; 3 gelungen; 4 fehlgeschlagen |
| String | Native Response oder Ablehnungsgrund |
| UInt32 | Letzte akzeptierte Stable-Capture-Anfrage-ID |
| 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.
String NodeId | Typ | Beschreibung |
|---|---|---|
| String | PRECIZ |
| String | Gerätemodell |
| String | MID |
| String | Firmware-Version |
| String | Hardwareversion |
| 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.
Die folgenden Pfade beziehen sich auf Objekte / Server und verwenden Sie Namespace 0.
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.
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.
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.
Methode String NodeId | Eingabeargumente | Output | Genehmigung |
|---|---|---|---|
| Keine | Elf Messfelder, Abschnitt 8.1 | Lesen |
| TimeoutMs: UInt32 | RequestId: UInt32 | Ausführen |
| RequestId: UInt32 | Elf Messfelder, Abschnitt 8.1 | Lesen |
| Keine | RequestId: UInt32 | Ausführen |
| Wert: doppelt | RequestId: UInt32 | Ausführen |
| Keine | RequestId: UInt32 | Ausführen |
| Keine | RequestId: UInt32 | Ausführen |
| Wert: UInt16 | RequestId: UInt32 | Ausführen |
| Enabled: Boolean | RequestId: UInt32 | Ausführen |
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.
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.
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.
Ausführt native TAC, das aufgebrachte und voreingestellte Tara entfernen. Brutto wird einbehalten und
Netto-Rückgabe an Gross. Es gibt keine Input-Argumente.
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.
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.
Für TareCurrent, SetTare, Zero, ClearTare, SetChannel, SetFilter und SetHRFilter:
Rufen Sie die Methode auf und behalten Sie ihre zurückgegebene RequestId bei.
Lesen oder abonnieren Sie LastCommandId, LastCommandState und LastCommandResult.
Verknüpfen Sie das Ergebnis nur mit einer übereinstimmenden LastCommandId.
Staat 3 bedeutet Erfolg; Staat 4 bedeutet Versagen. Die Staaten 1 und 2 sind anhängig.
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.
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.
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.
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.
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.
Behalten Sie die zurückgegebene UInt32 RequestId.
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.
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.
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.
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.
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.
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.
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.
Geben Sie TimeoutMs ein 5000 und klicken Anruf. Notieren Sie die zurückgegebene RequestId.
Offen GetCapturedMeasurement Geben Sie die gleiche RequestId ein.
Klicken Anruf. Wenn anhängig, rufen Sie GetCapturedMeasurement erneut mit der gleichen ID auf.
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.
Installieren Sie das Clientpaket in einer virtuellen Python-Umgebung:
python -m pip install asyncuaBereiten 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.
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.
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 LastCommandResultZuordnung 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.
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 |
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. |
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.
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.
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.
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.
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).
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.
CSCP-Befehlsreferenz für Neutron: Nachrichtenstruktur, Wägung, Konfiguration, Zählung, Kontrollwägung und digitale E/A.
Neutron Modbus RTU/TCP-Referenz für SPS-, SCADA- und HMI-Integration: Verbindung, Adressierung, Register, Kalibrierung und automatische Kontrollwaagenregelung.
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.