CSCP — CloudScale komunikacijski protokol
CSCP referenca za Neutron: struktura poruke, vaganje, konfiguracija, brojanje, kontrolno vaganje i digitalni I/O.
PRECIZ · NEUTRON OPC UA
OPC UA integracija za Neutron: sigurne veze, podaci o vaganju uživo, dohvat stabilnog mjerenja i integracija s PLC-om/SCADA-om.
Verzija priručnika: 1.0 · Datum objave: 18. listopada 2026
Vrijedi za: Neutron firmware 2.5.0 uz podršku za OPC UA · Informacijski model proizvođača 1.3.0
Inačica | Datum objave | Promjene |
|---|---|---|
1.0 | 18. listopada 2026. | Prvo izdanje uputa Neutron OPC UA. Informacijski model NodeSet2 1.3.0 s ActiveChannel za čitanje aktivnog kanala i SetChannel za odabir kanala 1–4. |
PRECIZ je službeno registrirani član organizacije OPC Foundation. Pogledajte službeni zapis PRECIZ u imeniku članova organizacije OPC Foundation.
Neutron proizvođača PRECIZ pruža OPC UA poslužitelj za integraciju s PLC-ovima, sustavima SCADA i MES te računalnim aplikacijama. Sučelje koristi komunikaciju OPC UA Client/Server putem UA-TCP uz kodiranje UA Binary.
Poslužitelj pruža:
Bruto masa, neto masa, tara i bruto masa visoke razlučivosti uživo, sirovi ADC, stabilnost, status vage, kod pogreške i jedinica.
Metapodaci mjerenja: podjeljak, decimalna mjesta, maksimalno opterećenje, inženjerske jedinice i inženjerski raspon.
Identifikacija uređaja i standardne informacije OPC UA poslužitelja.
Pretplate na promjene podataka za vrijednosti uživo.
Usklađeno očitanje mjerenja koje sadrži jedanaest polja iz iste snimke stanja.
Asinkrono bilježenje i dohvat svježeg stabilnog mjerenja.
Radnje tariranja, zadavanja tare, nuliranja i brisanja tare.
Postavka filtra FT i postavka ADC chopping funkcije FC.
Aktivni kanal vaganja očitajte pomoću ActiveChannel, a kanal 1–4 odaberite pomoću SetChannel (NodeSet2 1.3.0).
Dvije istodobne klijentske sesije.
Neobvezna šifrirana komunikacija, povjerenje u certifikate aplikacija i korisničke ovlasti za čitanje ili čitanje i izvršavanje naredbi.
Sve izložene procesne varijable dostupne su samo za čitanje. Radnje se izvršavaju putem metoda. Sučelje ne omogućuje proizvoljno izvršavanje izvornih naredbi, umjeravanje, upravljanje izlazima, odabir aplikacije, rezultate brojanja, povijest, događaje ni OPC UA PubSub. Informacijski model vlastiti je model proizvođača PRECIZ, a ne prateći model OPC UA Weighing ili Device Integration.
Tri načina za dobivanje mjerenja služe različitim svrhama:
Sučelje | Primjena |
|---|---|
Varijable uživo i pretplate | Prikaz ili kontinuirano praćenje pojedinačnih vrijednosti |
| Dohvat svih jedanaest mjernih polja iz jedne trenutačne snimke stanja |
| Zabilježite i zadržite svježe valjano stabilno mjerenje te ga dohvatite prema ID-ju zahtjeva |
Povežite se s lokalnom konfiguracijskom stranicom uređaja Neutron ili alatom za konfiguraciju putem Bluetootha. Za upravljanje certifikatima i korisnicima koristite HTTPS ili Bluetooth s autentikacijom.
Odaberite sučelje mrežne veze i dohvatite njegovu dodijeljenu IP adresu.
Zadržite prikupljanje podataka vage uključenim u postavkama Scale.
Otvorite karticu OPC UA. Firmware mora prijaviti da je OPC UA dostupan.
Za šifrirani pristup najprije izradite korisnika u odjeljku Users & permissions.
U odjeljku Settings omogućite poslužitelj, odaberite sigurnosni način rada i zadržite port 4840 te minimalni interval 100 ms za početno povezivanje.
Kliknite Save. Kopirajte adresu veze pomoću Copy endpoint.
Primjer krajnje točke:
opc.tcp://192.168.50.73:4840Dodajte krajnju točku kao poslužitelj u UAExpert.
U šifriranom načinu odaberite Basic256Sha256 / SignAndEncrypt i autentikaciju Username/Password. U nezaštićenom načinu odaberite None i Anonymous.
Za šifrirani pristup usporedite certifikat uređaja Neutron i označite ga kao pouzdanog. Ako Neutron još ne vjeruje klijentskom certifikatu, slijedite odjeljak 4.2 i ponovno se povežite.
Povežite se i otvorite Objects → CS-NEUTRON Scale. NodeId objekta je Scale; prikazani naziv je CS-NEUTRON Scale.
Povucite Gross, Net, Tare, Stable, Status, ErrorCode i Unit u Data Access View.
U kontekstnom izborniku Data Access View postavite interval objavljivanja pretplate i interval uzorkovanja nadzirane stavke, početno 100 ms.
Koristite vrijednost samo ako je njezin OPC UA StatusCode Good. ErrorCode=1 znači da izvorna vaga nema pogrešku. Status=1 ili Status=3 označava stabilno pokazivanje.
Krajnja točka ima oblik opc.tcp://<assigned-device-IP>:<port>. Koristite adresu odabranog sučelja Wi-Fi, Ethernet ili LTE. Kartica OPC UA prikazuje adresu i nudi gumb za kopiranje. Stalna IP adresa pojednostavljuje integraciju.
Uređaju nije potrebno postaviti IP adresu PLC-a. Dopustite dolazni TCP promet prema odabranom portu. Klijent mora imati mrežni put do uređaja Neutron; LTE adresa iza NAT-a operatera nije automatski dostupna izvan te mreže. Koristite odgovarajuću usmjeravanu mrežu, privatni APN ili VPN.
Postavka | Ključ | Zadano | Vrijednosti / učinak |
|---|---|---|---|
OPC UA dostupan | OUB | Ovisi o firmwareu | Samo za čitanje: 0 odsutan, 1 dostupan |
Podrška sigurnosti | OUS | Ovisi o firmwareu | Samo za čitanje: 0 odsutan, 1 dostupan |
OPC UA poslužitelj | OUE | Onemogućeno | 0 onemogućen, 1 omogućen |
TCP port | OUP | 4840 | 1024–65535; odaberite slobodan servisni port |
Minimalni interval ažuriranja | OUI | 100 ms | 10–5000 ms; minimalni interval uzorkovanja i objavljivanja koji poslužitelj prihvaća |
Sigurnost veze | OUM | Nezaštićeno | 0 None/anonymous; 1 Basic256Sha256/SignAndEncrypt s korisničkim imenom i lozinkom |
Anonimni pristup naredbi | OUC | Onemogućeno | Samo u nezaštićenom načinu: 0 samo za čitanje; 1 dopuštene sve podržane naredbe |
Spremanje postavki OPC UA ponovno pokreće OPC UA uslugu i prekida veze s njezinim klijentima. Promjene korisnika i postavki povjerenja također ponovno pokreću uslugu. Nakon tih promjena ponovno uspostavite vezu. Koriste se postojeće postavke IP adrese uređaja, vage i sata.
Minimalni interval donja je granica, a ne fiksno razdoblje prijenosa ili jamstvo ukupne latencije od izvora do odredišta. Klijenti traže vlastite intervale i moraju koristiti revidirane vrijednosti koje vrati poslužitelj.
Način rada | Politika / sigurnost poruke | Autentikacija | Ovlast za naredbe |
|---|---|---|---|
Nezaštićeno | None / None | Anonymous | Određeno postavkom Anonymous command access |
Šifrirano | Basic256Sha256 / SignAndEncrypt | Korisničko ime i lozinka; pouzdani certifikat klijentske aplikacije | Određeno ovlašću korisnika |
U šifriranom načinu nisu podržane anonimne sesije ni prijava korisnika putem certifikata. Certifikat klijentske aplikacije identificira klijentski softver i ne zamjenjuje autentifikaciju korisničkim imenom i lozinkom. PIN web-konfiguracije i HTTPS certifikat odvojeni su od OPC UA vjerodajnica i certifikata.
Nezaštićeni način koristite na pouzdanoj, izoliranoj mreži. On ne šifrira podatke i ne provjerava identitet pojedinačnih korisnika.
Otvorite postavke OPC UA uređaja Neutron putem HTTPS-a ili Bluetootha s autentikacijom.
Dodajte korisnika. Korisnička imena sadrže 1–64 ASCII slova, znamenke, podvlake ili spojnice te razlikuju velika i mala slova. Lozinke sadrže 12–128 znakova. Podržano je do osam korisnika; zadani OPC UA račun ne postoji.
Odaberite Read only ili Read and execute commands.
Omogućite šifrirani OPC UA i spremite postavke. Sat uređaja mora biti sinkroniziran i mora postojati barem jedan korisnik. Sigurno pokretanje čeka sinkronizaciju sata.
Pri prvom sigurnom pokretanju Neutron generira svoj privatni ključ i samopotpisani aplikacijski certifikat RSA-2048 koji vrijedi pet godina.
U klijentu usporedite SHA-256 otisak certifikata uređaja Neutron s otiskom prikazanim u konfiguracijskom sučelju, a zatim mu dodijelite povjerenje.
Pokušajte uspostaviti šifriranu vezu. Neutron odbija nepoznat certifikat klijentske aplikacije i navodi ga u odjeljku Certificates kao rejected.
Kliknite Refresh certificates and users, usporedite otisak klijenta i kliknite Approve za taj certifikat.
Ponovno se povežite korisničkim imenom i lozinkom.
Klijent mora vjerovati uređaju Neutron prije nego što postupak može napredovati dovoljno da pošalje vlastiti certifikat. Odobrenje ne zaobilazi provjeru isteka valjanosti, potpisa, namjene ključa ili URI-ja aplikacije.
Radnja | Samo čitanje | Čitanje i izvršavanje naredbi |
|---|---|---|
Čitanje varijabli / pretplata | Da | Da |
ReadMeasurement | Da | Da |
GetCapturedMeasurement | Da | Da |
CaptureStableWeight | Ne | Da |
TareCurrent, SetTare, Zero, ClearTare | Ne | Da |
SetFilter, SetHRFilter, SetChannel | Ne | Da |
Pisanje varijabli / administracija korisnika ili certifikata putem OPC UA | Ne | Ne |
Spremljene uloge Reader i Operator odgovaraju tim dvjema ovlastima. Ne postoje razine ovlasti za pojedine naredbe. U šifriranom načinu vrijedi ovlast korisnika; OUC se zanemaruje. U nezaštićenom načinu OUC dopušta sve podržane naredbe ili nijednu.
Pet neuspjelih prijava uzrokuje 30-sekundnu blokadu prijavljivanja na cijelom poslužitelju. To može privremeno utjecati i na druge korisnike. Korisničke lozinke pohranjuju se kao PBKDF2-HMAC-SHA256 sažeci sa soli; administracijsko sučelje ne izvozi lozinke ni privatne ključeve.
URI aplikacije Neutron:
urn:preciz:cs-neutron:<MID>Generirani certifikat uključuje taj URI, naziv računala <MID>.local malim slovima i IP adresu uređaja u trenutku generiranja. Zadržite stalnu adresu ili izdajte zamjenski certifikat s adresama koje klijenti koriste.
CA certifikat nije potreban za izričito pouzdane samopotpisane aplikacijske certifikate. Za PKI kojim upravlja tvrtka:
Odaberi Create and download CSR. CSR koristi postojeći ključ uređaja.
Neka CA izda aplikacijski certifikat OPC UA koji zadržava URI aplikacije u SAN-u te odgovarajuće proširene namjene ključa za poslužitelja/klijenta i namjene digitalnog potpisa/šifriranja ključa.
Uvezite ga kao CA-signed device certificate. Njegov privatni ključ mora odgovarati postojećem ključu uređaja Neutron. Instalirajte potreban CA lanac u klijentu.
Za povjerenje u klijente s certifikatima koje izdaje CA uvezite korijenski certifikat izdavatelja kao Trusted client certificate or CA. Posredne CA certifikate uvezite kao Intermediate issuer CA. Sam unos posrednog izdavatelja ne daje povjerenje.
Kada se koristi provjera opoziva, uvezite CRL-ove koje je potpisao CA kao Certificate revocation list i ažurirajte ih prije isteka valjanosti. Najprije uvezite CA certifikate njihovih izdavatelja.
Podržan je uvoz PEM ili DER, do 8192 bajta po datoteci. Svako spremište pouzdanih, odbijenih, izdavateljskih ili CRL zapisa prima do 12 unosa. Uklonite zastarjele odbijene unose kada se to spremište napuni. Instalirani CRL-ovi provjeravaju se prema datumima i potpisu izdavatelja; istekli CRL-ovi uzrokuju odbijanje novih veza na koje se odnose. Bez instaliranih CRL-ova provjera opoziva se ne provodi. CRL-ovi se ne preuzimaju automatski; upravljanje putem OCSP-a i GDS-a nije podržano.
Obnovite certifikat stvaranjem CSR-a i uvozom obnovljenog certifikata. Istekli certifikat uređaja sprječava sigurno pokretanje. Replace device identity uklanja trenutačni ključ/certifikat/CSR i generira novi identitet pri sljedećem sigurnom pokretanju; klijenti mu moraju ponovno dodijeliti povjerenje. Korisnici i pouzdani klijenti zadržavaju se.
Korisnici i spremišta certifikata zadržavaju se pri uobičajenim ponovnim pokretanjima i OTA ažuriranjima. Brisanje datotečnog sustava uređaja uklanja ih. Prije prijenosa vlasništva uređaja izričito uklonite prethodne korisnike i zapise povjerenja.
URI imenskog prostora proizvođača:
urn:preciz:cs-neutron:weighing:1Razriješite taj URI u Server/NamespaceArray pri svakom povezivanju. Nemojte fiksno zadavati indeks imenskog prostora 1 ili 2. Sufiks verzije :1 pripada stabilnom URI-ju imenskog prostora; verzija modela za preuzimanje je 1.3.0.
Primjeri oblika iste varijable:
nsu=urn:preciz:cs-neutron:weighing:1;s=Scale.Gross
ns=2;s=Scale.GrossBrojčani oblik valjan je samo kada poslužitelj trenutačno dodjeljuje taj URI indeksu 2. Ako klijent ne prihvaća sintaksu nsu=, razriješite URI i sastavite NodeId s brojčanim indeksom. Identifikatori proizvođača nizovi su znakova koji razlikuju velika i mala slova, uključujući točke u Scale.Gross.
Mjesto u pregledniku čvorova | Tekstualni NodeId objekta |
|---|---|
Objects / CS-NEUTRON Scale |
|
Objects / Device |
|
Objects / Server | Standardni imenski prostor 0, brojčani NodeId |
Metode se moraju pozivati s Scale kao nadređenim ObjectId-jem i NodeId-jem metode kao MethodId-jem.
Gross, Net i Tare izvoze se kao vrijednosti Double normalizirane na postavljeni broj decimalnih mjesta. HR je bruto masa visoke razlučivosti prije zaokruživanja za prikaz, a ne neto masa ili sirovi ADC. Svaka masa koristi trenutačni Scale.Unit; OPC UA ne pretvara jedinice. Prijenosni tip Double ne povećava točnost senzora.
Binarne vrijednosti s pomičnim zarezom ne predstavljaju svaki decimalni broj potpuno točno. Formatirajte prikaz mase pomoću Scale.Decimals i koristite Scale.Division kao podjeljak vaganja. HR se može prikazati u znanstvenom zapisu: 9.31e-5 kg znači 0.0000931 kg.
Neutron kopira najnovije vrijednosti vaganja u OPC UA presjek stanja približno svakih min(OUI, 50) milisekundi, ovisno o dostupnosti prikupljenih podataka. Čitanje ili pretplata ne pokreće dodatnu ADC pretvorbu.
SourceTimestamp označava vrijeme snimke mjerenja kada je sat uređaja sinkroniziran. Prije sinkronizacije nije prisutan. ServerTimestamp vremenska je oznaka koju poslužitelj dodjeljuje za DataValue; ne mora biti jednaka SourceTimestamp. Za vremenske oznake OPC UA koristi se UTC.
Zasebna očitanja ili obavijesti pretplate mogu se odnositi na različite presjeke stanja. Koristite ReadMeasurement ili zabilježeni rezultat kada polja moraju pripadati istom presjeku. Nepromijenjena nadzirana vrijednost ne mora proizvesti novu obavijest u svakom intervalu.
DataValue StatusCode | Značenje / radnja klijenta |
|---|---|
Good | Vrijednost se može koristiti; prema potrebi provjerite Stable i izvorni status |
BadNoCommunication | Nema snimke stanja ili više od dvije sekunde nije primljena nova; odbacite mjerenje uživo |
BadSensorFailure | Pogreška izvorne vage; provjerite ErrorCode |
BadOutOfRange | Premalo opterećenje ili preopterećenje; odbacite mjerenje |
Kvaliteta se odnosi na mase, ADC i Stable. Status, ErrorCode i Unit ostaju čitljivi tijekom pogrešaka izvorne vage, ali postaju zastarjeli ako prestanu stizati snimke stanja. Dijagnostika naredbi i bilježenja ostaje čitljiva neovisno o kvaliteti podataka vage uživo. Metapodaci su konfiguracijske informacije; njihov status Good ne potvrđuje da je rezultat vaganja uživo valjan.
Svi unosi u nastavku dostupni su samo za čitanje. NodeIds su tekstualni identifikatori proizvođača, osim ako su označeni kao standardni imenski prostor 0. Svi skalarni unosi imaju ValueRank −1.
String NodeId | Vrsta | Jedinica | Opis |
|---|---|---|---|
| Double | Scale.Unit | Zaokružena bruto masa |
| Double | Scale.Unit | Zaokružena neto masa |
| Double | Scale.Unit | Primijenjena tara |
| Double | Scale.Unit | Nezaokružena bruto masa visoke razlučivosti |
| Int32 | ADC očitanja | Postojeća ADC vrijednost vage kopirana sa snimkom stanja; bez dodatnog očitanja hardvera |
| Boolean | — | Zastavica stabilnosti vage |
| UInt16 | — | Status pokazivanja; tablica u nastavku |
| UInt16 | — | Izvorna pogreška; 1 znači da nema pogreške |
| String | — | Postavljena jedinica, poput kg ili g |
| UInt16 | decimalna mjesta | Broj decimalnih mjesta za prikazanu masu |
| Double | Scale.Unit | Aktivni podjeljak vaganja |
| Double | Scale.Unit | Maksimalno opterećenje aktivnog raspona |
| UInt16 | — | Aktivna postavka FT, 1–1023 |
| Boolean | — | Postavka FC: false isključeno, true uključeno; upravlja funkcijom ADC chopping |
ADC nije zasebno skeniranje svake mjerne ćelije. Varijabla mV nije izložena. Unatoč nazivu, HRFilter upravlja postojećom FC/ADC chopping funkcijom, a ne softverskim filtrom koji se primjenjuje isključivo na OPC UA varijablu HR.
Scale.Status | Značenje |
|---|---|
0 | Premalo opterećenje |
1 | Unutar raspona oko nule |
2 | Nestabilno |
3 | Stabilno |
4 | Preopterećenje |
255 | Neinicializirana snimka stanja |
Koristite Scale.Stable kao zastavicu stabilnosti. Scale.Status i OPC UA StatusCode zasebni su pojmovi; izvorni status 3 nije kôd kvalitete OPC UA.
Scale.ErrorCode | Značenje |
|---|---|
1 | Nema pogreške |
99 | Istek vremena naredbe |
98 | Nepoznata naredba |
97 | Vaga je onemogućena |
96 | Nedostaje umjeravanje |
95 | Nedostaju mjeriteljski podaci |
94 | Pogreška statusnog registra ADC-a |
93 | Pogreška referentne vrijednosti ADC-a |
92 | Pogreška načina pretvorbe ADC-a |
91 | Pogreška konfiguracije takta ADC-a |
90 | Pogreška konfiguracije pojedinačnog ciklusa ADC-a |
89 | Pogreška konfiguracije filtra odbacivanja ADC-a |
88 | Nepodudaranje filtra ADC-a |
87 | Pogreška konfiguracije kanala ADC-a |
86 | Nepodudaranje funkcije ADC chopping |
85 | Pogreška bipolarnog načina ADC-a |
84 | Pogreška konfiguracije vanjske referentne vrijednosti ADC-a |
83 | Nepodudaranje pojačanja ADC-a |
82 | Pogreška filtra usrednjavanja ADC-a |
Svojstva imaju sljedeće tekstualne NodeIds proizvođača. Njihovi BrowseNames nalaze se u imenskom prostoru 0, primjerice 0:EngineeringUnits.
Obrazac tekstualnog NodeId-ja | Vrsta | Značenje |
|---|---|---|
| EUInformation | Metapodaci jedinice |
| Range | Donja/gornja granica inženjerskog raspona |
| Double | Izvezeni broj decimalnih mjesta, jednak Decimals |
EURange je [0, Capacity], osim što Net koristi [-Capacity, Capacity]. Inženjerski raspon je metapodatak, a ne uputa za ograničavanje vrijednosti. ValuePrecision je broj decimalnih mjesta, a ne podjeljak ili specifikacija točnosti. HR nema svojstvo ValuePrecision.
EngineeringUnits koristi kodove UN/CEFACT za kg (4933453), g (4674125), lb (4997714) i oz (5197402). Simboli drugih jedinica imaju UnitId −1 i prazan imenski prostor standarda. Osvježite metapodatke nakon promjene jedinica, raspona ili konfiguracije vage.
String NodeId | Vrsta | Opis |
|---|---|---|
| UInt32 | ID posljednje prihvaćene naredbe za tariranje/nuliranje/filtar |
| UInt16 | 0 mirovanje; 1 u redu čekanja; 2 izvršavanje; 3 uspješno; 4 neuspješno |
| String | Izvorni odgovor ili razlog odbijanja |
| UInt32 | ID posljednjeg prihvaćenog zahtjeva za bilježenje stabilnog mjerenja |
| UInt16 | 0 mirovanje; 1 na čekanju; 2 dovršeno; 3 istek vremena |
ID-jevi naredbi i ID-jevi bilježenja odvojeni su nizovi. Oba dijele svi klijenti, lokalni su za pokrenutu uslugu i poništavaju se pri ponovnom pokretanju usluge.
String NodeId | Vrsta | Opis |
|---|---|---|
| String | PRECIZ |
| String | Model uređaja |
| String | MID |
| String | Verzija firmwarea |
| String | Verzija hardvera |
| String | Postavljeni naziv uređaja |
Identifikacijske vrijednosti učitavaju se pri pokretanju OPC UA. Nakon promjene naziva uređaja ponovno pokrenite uslugu kako biste osvježili DeviceName.
Sljedeće su putanje relativne u odnosu na Objects / Server i koriste imenski prostor 0.
Putanja u pregledniku čvorova | Vrsta / vrijednost |
|---|---|
ServerArray | String[]; indeks 0 je URI aplikacije uređaja |
NamespaceArray | String[]; indeks 0 je imenski prostor OPC UA, indeks 1 je URI aplikacije uređaja; razriješite URI proizvođača u tom nizu |
ServerStatus | ServerStatusDataType |
ServerStatus/StartTime, CurrentTime | DateTime, deklariran kao UtcTime |
ServerStatus/State | ServerState; 0 Running tijekom uobičajenog rada |
ServerStatus/SecondsTillShutdown | UInt32; 0 kada nije zakazano isključivanje |
ServerStatus/ShutdownReason | LocalizedText |
ServerStatus/BuildInfo | BuildInfo: ProductUri, ManufacturerName, ProductName, SoftwareVersion, BuildNumber, BuildDate |
ServiceLevel | Byte; 255 tijekom normalnog rada |
Auditing | Boolean; false |
VendorServerInfo | Informacijski objekt proizvođača |
ServerRedundancy/RedundancySupport | RedundancySupport; 0 None |
ServerCapabilities/ServerProfileArray | String[]; URI-jevi implementacijskog profila i faceta |
ServerCapabilities/LocaleIdArray | LocaleId[]; en |
ServerCapabilities/MinSupportedSampleRate | Duration u ms; aktivni minimum OUI |
ServerCapabilities/MaxBrowseContinuationPoints | UInt16; 5 po sesiji |
ServerCapabilities/SoftwareCertificates | SignedSoftwareCertificate[]; prazno |
ServerCapabilities/ModellingRules, AggregateFunctions | Mape |
ServerCapabilities/OperationLimits | Ograničenja po zahtjevu navedena u odjeljku 9 |
Standardne varijable niza imaju ValueRank 1 i ArrayDimensions [0]; nula označava nezadanu maksimalnu duljinu. ServerProfileArray označava ciljani implementacijski profil Micro Embedded Device 2017 i aktivne transportne, metodne i sigurnosne facete. Taj identifikator profila nije certifikacijska oznaka OPC Foundation.
Scale.ActiveChannel je varijabla UInt16 koja prikazuje trenutačno aktivni kanal vaganja. Dostupna je samo za čitanje; kanal odaberite pomoću Scale.SetChannel. NodeSet2 1.3.0 podržava odabir kanala 1–4. Pri povezivanju razriješite URI imenskog prostora, kako je opisano u odjeljku 5.1.
Pozovite svaku metodu na nadređenom objektu Scale. Navedite skalarne argumente točno prikazanih vrsta OPC UA; nemojte argument UInt32 ili Boolean zamijeniti vrstama String, Int32 ili Double.
SetChannel koristi Channel: UInt16 (1–4) i vraća RequestId: UInt32; pogledajte odjeljak 7.9.
Tekstualni NodeId metode | Ulazni argumenti | Izlaz | Ovlast |
|---|---|---|---|
| Nema | Jedanaest mjernih polja, odjeljak 8.1 | Čitanje |
| TimeoutMs: UInt32 | RequestId: UInt32 | Izvršavanje |
| RequestId: UInt32 | Jedanaest mjernih polja, odjeljak 8.1 | Čitanje |
| Nema | RequestId: UInt32 | Izvršavanje |
| Value: Double | RequestId: UInt32 | Izvršavanje |
| Nema | RequestId: UInt32 | Izvršavanje |
| Nema | RequestId: UInt32 | Izvršavanje |
| Value: UInt16 | RequestId: UInt32 | Izvršavanje |
| Enabled: Boolean | RequestId: UInt32 | Izvršavanje |
Tarira trenutačnu stabilnu bruto masu izvornom radnjom T. Taru postavlja na bruto masu, a neto masa postaje nula; bruto nultu točku ne mijenja. Vaga mora prihvatiti stabilno tariranje unutar svojeg vremenskog ograničenja naredbe.
Primjer s 1.11 kg na vagi: Gross ostaje 1.11 kg, Tare postaje 1.11 kg, a Net postaje 0.00 kg. Izvorni odgovor o uspjehu nalik je na T S 1.11 kg.
Postavlja unaprijed zadanu taru u Scale.Unit korištenjem izvorne radnje TA. Value mora biti konačan, nenegativan, ne veći od 1,000,000,000 i ne veći od maksimalnog opterećenja. Primijenjena tara zaokružuje se na podjeljak vage. Nakon dovršetka očitajte Scale.Tare da biste dobili primijenjenu vrijednost. Primjer unosa: Double 0.250 kada je Unit kg.
Izvršava izvornu naredbu Z, uz uvjet stabilnosti i postavljenog raspona nuliranja. Pri uspjehu se prilagođava nulta točka i briše postojeća primijenjena/unaprijed zadana tara. Izvorni odgovor o uspjehu jest Z A. To se razlikuje od TareCurrent.
Izvršava izvornu naredbu TAC, uklanjajući primijenjenu i unaprijed zadanu taru. Gross se zadržava, a Net se vraća na Gross. Nema ulaznih argumenata.
Value je UInt16, uključivo 1–1023. Time se postavlja FT za aktivni kanal vage putem postojećeg mehanizma konfiguracije filtra. Nula i vrijednosti iznad 1023 vraćaju BadOutOfRange. Primjer: UInt16 512.
Enabled je Boolean: true uključuje FC/ADC chopping, a false ga isključuje. Brojčana vrijednost poslana brojčanom vrstom OPC UA nije Boolean i odbija se.
FT i FC aktiviraju se i spremaju za aktivni kanal putem izvornih postupaka konfiguriranja. Neuspjela provjera hardvera daje neuspješan rezultat naredbe. Prikupljanje podataka može zastati tijekom primjene postavke. Nakon dovršetka očitajte Scale.Filter ili Scale.HRFilter da biste vidjeli aktivnu postavku.
Za TareCurrent, SetTare, Zero, ClearTare, SetChannel, SetFilter i SetHRFilter:
Pozovite metodu i zadržite povratni RequestId.
Čitajte ili pretplatite se na LastCommandId, LastCommandState i LastCommandResult.
Povežite rezultat isključivo s odgovarajućim LastCommandId.
Stanje 3 znači uspjeh; stanje 4 znači neuspjeh. Stanja 1 i 2 su u tijeku.
Pročitajte zahvaćene vrijednosti procesa/konfiguracije nakon uspješnog završetka.
Rezultat poziva Good potvrđuje prihvaćanje, a ne dovršetak. Samo jedna od ovih naredbi može istodobno čekati izvršavanje ili se izvršavati; druga dobiva BadResourceUnavailable. Postojeći uvjeti stabilnosti, dostupnosti i zauzetosti vage te blokade aplikacije i dalje vrijede.
Pretinac naredbi i dijagnostika posljednjeg rezultata zajednički su cijelom uređaju. Uskladite klijente koji upisuju podatke ako dva klijenta mogu izdavati naredbe: kasnija naredba može zamijeniti posljednju dovršenu dijagnostiku prije nego što je drugi klijent očita. To nije povijest naredbi.
ID-ovi zahtjeva nisu trajni ID-ovi radnji. Nakon gubitka veze provjerite stanje zahvaćene vage prije ponavljanja naredbe čiji ishod nije poznat. Ponovno pokretanje usluge briše dijagnostiku i otkazuje nedovršene naredbe vage koje pripadaju OPC UA usluzi; ne poništava dovršeno tariranje, nuliranje ni promjenu postavke.
Pozovite Scale.SetChannel na objektu Scale. Njegov ulazni argument Channel je skalarni UInt16 s vrijednošću 1–4; druge se vrijednosti odbijaju. Izlazni argument RequestId je UInt32.
Poziv zahtijeva ovlast za naredbe i ponovno inicijalizira vagu. Uskladite izvršavanje s drugim naredbama i slijedite asinkroni postupak u odjeljku 7.8. Odabrani kanal očitajte iz Scale.ActiveChannel.
ReadMeasurement() odmah vraća najnoviju valjanu snimku stanja. Ne čeka stabilnost i ne zahtijeva novo ADC očitanje. GetCapturedMeasurement vraća isti izlazni potpis za zadržani stabilni rezultat.
Položaj (počevši od nule) | Argument | Vrsta OPC UA | Značenje |
|---|---|---|---|
0 | MeasurementId | UInt64 | Redni broj snimke stanja |
1 | Gross | Double | Bruto masa |
2 | Net | Double | Neto masa |
3 | Tare | Double | Primijenjena tara |
4 | HR | Double | Bruto masa visoke razlučivosti |
5 | Stable | Boolean | Stabilnost ove snimke stanja |
6 | Status | UInt16 | Status izvorne vage |
7 | ErrorCode | UInt16 | Kôd pogreške izvorne vage |
8 | Unit | String | Jedinica ovog rezultata |
9 | Timestamp | DateTime | UTC vrijeme snimke stanja ili nula ako sat nije sinkroniziran |
10 | TimeSynchronized | Boolean | Može li se Timestamp koristiti kao kalendarsko vrijeme |
Sva polja pripadaju jednoj snimci stanja. MeasurementId povećava se pri svakoj snimci OPC UA, a ne pri svakoj fizičkoj ADC pretvorbi, i poništava se s uslugom. Pri pohrani sačuvajte preciznost UInt64. ADC, metapodaci i filtri zasebni su čvorovi s podacima uživo i nisu uključeni u ovaj rezultat metode s jedanaest polja.
Ako je TimeSynchronized false, nemojte tumačiti Timestamp kao kalendarski datum. ReadMeasurement vraća BadNoCommunication, BadSensorFailure ili BadOutOfRange kada snimka podataka uživo nedostaje ili je zastarjela, ima izvornu pogrešku ili je izvan raspona.
Pozovite CaptureStableWeight(TimeoutMs) s UInt32 100–60000 ms. Primjerice, 5000 dopušta do pet sekundi za valjano stabilno mjerenje. Nula nije valjana.
Sačuvajte vraćeni UInt32 RequestId.
Pozovite GetCapturedMeasurement(RequestId) s tim ID-jem. Dok zahtjev čeka dovršetak, vraća BadWaitingForInitialData. Ponavljajte poziv u umjerenom intervalu, primjerice 100 ms.
Pri uspjehu pohranite rezultat s jedanaest polja zajedno s RequestId-jem bilježenja.
Alternativno, pretplati se na LastCaptureId i LastCaptureState, zatim dohvati rezultat kada odgovarajući zahtjev dostigne stanje 2.
LastCaptureState | Značenje |
|---|---|
0 | Mirovanje |
1 | Na čekanju |
2 | Dovršeno; rezultat dostupan |
3 | Istek vremena |
Zabilježeni presjek stanja mora biti objavljen nakon početka zahtjeva te mora biti stabilan, svjež, bez izvornih pogrešaka i unutar raspona. Nevaljani presjeci preskaču se dok ne stigne odgovarajući ili ne istekne vrijeme čekanja. Ako je vaga već stabilna, sljedeći valjani presjek može odmah dovršiti bilježenje; nisu potrebni prijelaz iz nestabilnog u stabilno stanje ni dodatno vrijeme zadržavanja.
Ova radnja ne tarira i ne nulira vagu te ne blokira druge klijente. Samo jedno bilježenje može čekati dovršetak. Postoji jedan zamrznuti rezultat za cijeli uređaj, zajednički svim klijentima. Ostaje nepromijenjen čak i ako se trenutačna masa promijeni ili postane nedostupna. Pokretanje novog bilježenja zamjenjuje prethodni zahtjev/rezultat. Nema povijesti bilježenja.
GetCapturedMeasurement rezultat | Značenje |
|---|---|
Good | Vraćen je zadržani rezultat |
BadWaitingForInitialData | Odgovarajuće bilježenje još je na čekanju |
BadTimeout | Odgovarajuće bilježenje isteklo je bez valjanog stabilnog mjerenja |
BadNotFound | ID je nula, nepoznat, zamijenjen ili više nije dostupan nakon ponovnog pokretanja |
BadNoData | Nema dovršenog rezultata za odgovarajuće stanje bilježenja |
Kao ulaz metode GetCapturedMeasurement koristite RequestId bilježenja, a ne MeasurementId rezultata. Bilježenje može završiti nakon prekida veze klijenta koji ga je pokrenuo. Može se dohvatiti nakon ponovnog povezivanja s istim ID-jem ako je usluga OPC UA nastavila raditi. Ponovno pokretanje usluge briše bilježenja na čekanju, pohranjene rezultate i ID-jeve; uskladite zahtjeve za bilježenje između klijenata.
Parametar | Značenje |
|---|---|
OUI | Postavljena donja granica uzorkovanja i objavljivanja |
Interval uzorkovanja | Koliko se često uzorkuje nadzirana stavka |
Interval objavljivanja | Koliko često pretplata može objaviti obavijesti iz reda čekanja |
Veličina reda čekanja | Broj obavijesti zadržanih po nadziranoj stavci |
Keepalive | Označava aktivnu pretplatu kada nema obavijesti |
Za prikaz uživo počnite s 100–250 ms i veličinom reda 1. Za najbrže dostupno ažuriranje postavite OUI na 10 ms, ponovno uspostavite vezu nakon spremanja i zatražite uzorkovanje/objavljivanje od 10 ms. U klijentskoj logici koristite revidirane intervale poslužitelja.
Uzorkovanje brže od fizičke brzine prikupljanja ne stvara nova mjerenja. Mrežna latencija, šifriranje, opterećenje klijenta i postavke objavljivanja utječu na opaženo vrijeme odziva. Prikaz Server Status / Response Time u UAExpertu nije interval uzorkovanja ili objavljivanja pretplate.
Resurs | Ograničenje |
|---|---|
SecureChannels | 4 ukupno, uključujući preklapanje pri ponovnom povezivanju |
Sesije | 2 istodobno |
Vremensko ograničenje sesije | Maksimalno dogovoreno vremensko ograničenje 30 sekundi |
Pretplate | 4 ukupno; 2 po sesiji |
Nadzirane stavke | 64 ukupno; 32 po pretplati |
Red čekanja nadzirane stavke | 1–16 vrijednosti po stavci |
Zahtjevi Publish na čekanju | 4 po sesiji |
Red čekanja za ponovni prijenos | 16 poruka po pretplati |
Točke nastavka pregledavanja | 5 po sesiji |
Minimalni interval uzorkovanja/objavljivanja | OUI, 10–5000 ms; zadano 100 ms |
Operacije Read / Write / Browse | 32 po zahtjevu |
Operacije RegisterNodes / TranslateBrowsePaths | 32 po zahtjevu |
Operacije Method Call | 8 po zahtjevu |
Operacije nadziranih stavki | 32 po zahtjevu |
To su ukupne vrijednosti za cijeli poslužitelj, osim ako je naveden opseg po sesiji ili pretplati. Ako je red zahtjeva Publish pun, najstariji zahtjev na čekanju dobiva BadTooManyPublishRequests kako bi novi zahtjev mogao ući u red. Potvrde i Republish koriste ograničeni red ponovnog prijenosa. Ograničenje radnje Write ne omogućuje upis u varijable koje su samo za čitanje.
Uredno zatvarajte sesije. Klijent s prekinutom vezom može ostaviti prethodnu sesiju koja zauzima mjesto do isteka. Ponovno koristite ili aktivirajte postojeću sesiju ako je podržano; u suprotnom pričekajte istek. Nova instanca poslužitelja ne može ponovno aktivirati sesiju koja je postojala prije ponovnog pokretanja usluge: izradite sesiju, razriješite imenske prostore i ponovno stvorite pretplate. TCP klijenti koji ne preuzimaju podatke mogu biti odspojeni nakon isteka roka slanja od jedne sekunde.
Pogledajte upute za Neutron NS OPC UA na YouTubeu
Otvorite CS-NEUTRON Scale, desnom tipkom kliknite CaptureStableWeight i odaberite Call.
Unesite TimeoutMs 5000 i kliknite Call. Zabilježite vraćeni RequestId.
Otvorite GetCapturedMeasurement i unesite isti RequestId.
Kliknite Call. Ako zahtjev čeka dovršetak, ponovno pozovite GetCapturedMeasurement s istim ID-jem.
Iz vraćenog rezultata očitajte Gross, Net, Tare, HR, Stable, Status, ErrorCode, Unit i Timestamp. Tijekom čekanja ostavite postojeći zahtjev za bilježenje aktivnim; nemojte opetovano pokretati nova bilježenja.
Instalirajte klijentski paket u virtualnom okruženju Python:
python -m pip install asyncuaPripremite certifikat klijentske aplikacije OPC UA i privatni ključ. URI aplikacije u SAN-u mora odgovarati CLIENT_URI u nastavku. Odobrite certifikat na uređaju Neutron i preuzmite certifikat uređaja Neutron kao neutron.der. Zamijenite krajnju točku, korisničko ime i URI klijenta vlastitim vrijednostima. Datoteka privatnog ključa u ovom primjeru dostupna je klijentu Python; to nije privatni ključ uređaja Neutron.
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 zahtijeva valjane podatke uživo. Aplikacija koja poziva metodu mora obraditi iznimke poput BadSensorFailure ili BadOutOfRange. BadTimeout iz metode GetCapturedMeasurement znači da je isteklo vremensko ograničenje bilježenja na poslužitelju; to nije razlog da se staro pohranjeno mjerenje upotrijebi kao novo uspješno bilježenje.
Sljedeći kod izvršava se unutar uspostavljene veze async with client. Funkcija za obradu provjerava kvalitetu prije korištenja vrijednosti.
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()Zatraženi interval objavljivanja iznosi 100 ms. Uzorkovanje nadziranih stavki prema potrebi postavite kroz klijentsku biblioteku i poštujte revidirane vrijednosti poslužitelja.
Koristite OPC UA klijentske blokove proizvođača PLC-a. String NodeIds razriješite pomoću URI-ja imenskog prostora proizvođača. Slijedi slijed neovisan o proizvođaču, a ne implementacija u određenom PLC programskom jeziku:
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 LastCommandResultPreslikajte UInt64 MeasurementId u odgovarajuću cjelobrojnu vrstu PLC-a. Nemojte slati brojčanu zamjenu za Boolean metodi SetHRFilter. U PLC-u ili aplikaciji uskladite redoslijed naredbi i vlasništvo nad bilježenjem stabilnog mjerenja kada više klijenata ima ovlast za naredbe.
Simptom / status | Značenje i radnja |
|---|---|
BadCommunicationError / veza je odbijena | Provjerite je li OPC UA omogućen, IP adresu i port krajnje točke, odabrani mrežni put i vatrozid. Dnevnik pokretanja mora sadržavati |
BadCertificateUntrusted | Dodijelite povjerenje uređaju Neutron u klijentu i odobrite klijentski certifikat u uređaju Neutron ili instalirajte odgovarajući CA lanac |
Pogreške vremena/URI-ja certifikata | Sinkronizirajte satove i koristite certifikat s valjanim datumima i postavljenim URI-jem klijentske aplikacije |
BadIdentityTokenRejected / BadUserAccessDenied | Koristite ispravno korisničko ime i lozinku te potrebnu ovlast za naredbe; pričekajte istek 30-sekundne blokade nakon ponovljenih neuspješnih prijava |
BadTooManySessions / dosegnuto ograničenje sesija | Oba mjesta su zauzeta; odspojite drugog klijenta ili pričekajte da napuštena sesija istekne |
BadNodeIdUnknown | Ponovno razriješite URI imenskog prostora proizvođača, provjerite tekstualni NodeId koji razlikuje velika i mala slova te kompatibilnost firmwarea/modela |
BadTypeMismatch | Koristite točnu skalarnu vrstu argumenta iz odjeljka 7.1 |
BadOutOfRange na CaptureStableWeight | Vremensko ograničenje mora biti UInt32 100–60000; nula nije valjana |
BadOutOfRange na SetFilter / SetTare | Koristite FT 1–1023 ili konačnu nenegativnu taru unutar nosivosti i 1e9 |
BadResourceUnavailable | Mjesto za naredbu ili bilježenje zauzeto je; pričekajte dovršetak trenutačne radnje |
Poziv naredbe Call vraća Good, ali radnja ne uspijeva | Provjerite odgovarajuće LastCommandState i LastCommandResult; Good je potvrdio samo uvrštavanje u red čekanja |
BadNotWritable pri upisu varijabli | Procesne varijable dostupne su samo za čitanje; koristite podržanu metodu |
Bilježenje: BadWaitingForInitialData | Nastavite dohvaćati isti ID bilježenja; poslužitelj čeka valjani stabilni uzorak |
Bilježenje: BadTimeout | Prije isteka roka nije stigao odgovarajući stabilni uzorak |
Bilježenje: BadNotFound | Koristite vraćeni RequestId bilježenja; novije bilježenje ili ponovno pokretanje usluge poništilo je stari ID |
Nedostaje ServerCapabilities nakon promjene firmwarea | Osvježite adresni prostor ili se ponovno povežite s novim klijentskim projektom kako biste odbacili predmemorirane rezultate pregledavanja |
Prazna ili zastarjela mjerenja | Zadržite prikupljanje podataka vage uključenim, provjerite ErrorCode i izvorni status te kvalitetu DataValue |
NodeSet2 opisuje adresni prostor proizvođača, argumente metoda, reference i vrste za alate za rad s modelima bez mrežne veze. Njegovi indeksi imenskih prostora lokalni su za tu XML datoteku; razriješite URI imenskog prostora na aktivnom uređaju. XML sadrži definicije modela, a ne trenutačna mjerenja ili sigurnosnu kopiju korisnika, certifikata i postavki. Intervali rada i ovlasti izvršavanja slijede aktivnu konfiguraciju uređaja.
Informacijski model | Dopune sučelja |
|---|---|
1.0 | Osnovne vrijednosti vaganja i metode za tariranje/nuliranje |
1.1.0 | Metapodaci mjerenja, identifikacija, usklađeno mjerenje i bilježenje stabilne mase |
1.2.0 | ADC, FT/FC vrijednosti i SetFilter/SetHRFilter |
1.3.0 | ActiveChannel i SetChannel za čitanje aktivnog kanala i odabir kanala 1–4. |
URI imenskog prostora ostaje urn:preciz:cs-neutron:weighing:1. Postojeći potpisi metoda zadržani su; ReadMeasurement/GetCapturedMeasurement vraćaju jedanaest polja. Odaberite firmware koji sadrži OPC UA i funkcije potrebne za integraciju. Izdanje firmwarea bez OPC UA ne može izložiti krajnju točku.
Da. Odaberite Basic256Sha256 / SignAndEncrypt, koristite korisničko ime i lozinku te uspostavite uzajamno povjerenje u certifikate aplikacija. Dostupan je i nezaštićeni način None/Anonymous.
Pozovite CaptureStableWeight s vremenskim ograničenjem UInt32 od 100–60000 ms, sačuvajte njegov RequestId i dohvatite rezultat s jedanaest polja pomoću GetCapturedMeasurement s istim ID-jem. Dok zahtjev čeka dovršetak, ponavljajte dohvat umjesto pokretanja novog bilježenja.
Za naredbe tariranja, nuliranja i filtra Good potvrđuje prihvaćanje. Uskladite LastCommandId s vraćenim RequestId-jem i pričekajte LastCommandState 3 (uspjeh) ili 4 (neuspjeh).
Razriješite urn:preciz:cs-neutron:weighing:1 u NamespaceArray pri svakom povezivanju. Informacijski model za preuzimanje je verzija 1.3.0; brojčani indeks imenskog prostora poput 2 samo je primjer.
CSCP referenca za Neutron: struktura poruke, vaganje, konfiguracija, brojanje, kontrolno vaganje i digitalni I/O.
Referentni priručnik Neutron Modbus RTU/TCP za integraciju s PLC, SCADA i HMI sustavima: povezivanje, adresiranje, registri, umjeravanje i upravljanje automatskom kontrolnom vagom.
Trebate pomoć sa softverom, povezivošću ili uporabom rješenja? Opišite problem kako bismo vam pomogli odrediti sljedeći korak.