CSCP — CloudScale komunikacijski protokol
CSCP referenca za Neutron: struktura poruke, vaganje, konfiguracija, brojanje, kontrolno vaganje i digitalni I/O.
NEUTRON · PROTOKOL KOMUNIKACIJE
Referentni priručnik Neutron Modbus RTU/TCP za integraciju s PLC, SCADA i HMI sustavima: povezivanje, adresiranje, registri, umjeravanje i upravljanje automatskom kontrolnom vagom.
Verzija | Datum | Opis promjene |
|---|---|---|
| Lipanj 2026. | Prvo izdanje uputa Neutron Modbus. |
CloudScale Neutron NS i Neutron NT pružaju sučelje Modbus za čitanje podataka o vaganju, statusnih informacija, digitalnih I/O i podataka umjeravanja te za izvršavanje odabranih naredbi vage. Sučelje je namijenjeno integracijama s PLC-om, SCADA-om, HMI-jem, MES-om i prilagođenim softverom.
Neutron podržava sljedeće Modbus transportne varijante:
Modbus RTU putem sučelja RS-232 ili RS-485. Zadani ID podređenog uređaja / jedinice Modbus je 1.
Modbus TCP kroz Wi-Fi ili Ethernet. Uobičajeni TCP port je 502.
Dostupne funkcije i područja registara čine isto logičko sučelje za Modbus TCP i Modbus RTU, osim što TCP koristi Unit Identifier samo gdje to zahtijeva klijent ili pristupnik.
Važno: komunikacijski parametri poput postavki serijskog porta i mreže moraju se konfigurirati u uređaju Neutron prije povezivanja nadređenog uređaja Modbus. Uređaj koristi adresu Modbus postavljenu parametrom MBA.
Modbus TCP je dostupan putem mrežne veze Neutron. Koristi IP adresu dodijeljenu uređaju i TCP port 502. TCP komunikacija ne zahtijeva konfiguraciju serijskih linija.
Za korištenje Modbus TCP odaberite Modbus TCP među komunikacijskim sučeljima vage (parametar SCI). Modbus TCP možete koristiti istodobno s drugim sučeljima, primjerice RS-232 za komunikaciju s računalom putem protokola CSCP.
Konfiguracija | Rezultat |
|---|---|
SCI = 10 | Omogući samo Modbus TCP. |
SCI = 5,10 | Omogućuje uobičajenu komunikaciju vage putem RS-232 zajedno s Modbus TCP. |
SCI = 6,10 | Omogućuje uobičajenu komunikaciju vage putem RS-485 zajedno s Modbus TCP. |
| Postavlja adresu podređenog uređaja / jedinice Modbus. Zadano: 1. |
TCP port | |
Gdje je prikazano nekoliko SCI vrijednosti, podesite sučelja prema odabranoj Neutron komunikacijskoj konfiguraciji. Nakon primjene promjena konfiguracije, ponovno pokrenite komunikaciju ili uređaj gdje je potrebno u konfiguracijskom izborniku.
Stavka | Primjer |
|---|---|
Nadređeni uređaj Modbus | |
Transport | Ethernet ili Wi-Fi TCP/IP |
Odredišna adresa | IP adresa uređaja Neutron |
Servisni port | |
Unit ID | MBA vrijednost; uobičajeno 1 |
Za stabilnu industrijsku instalaciju, Ethernet se preporučuje kad god je dostupna žična mreža. Wi-Fi dodaje latenciju ovisnu o mreži i treba je procijeniti u okolini aplikacije.
Modbus RTU može se koristiti preko RS-232 ili RS-485. Postavke serijske komunikacije nadređenog uređaja Modbus moraju odgovarati postavkama serijskog sučelja konfiguriranima u uređaju Neutron. Modbus ID podređenog uređaja postavlja se parametrom MBA i zadano iznosi 1.
Za korištenje Modbus RTU odaberite Modbus RS-232 ili Modbus RS-485 među komunikacijskim sučeljima vage (parametar SCI).
Sučelje | Tipično načelo ožičenja | Važna napomena |
|---|---|---|
RS-232 | Povežite TX, RX i GND između uređaja Neutron i nadređenog uređaja Modbus. TX/RX možda treba križno povezati, ovisno o tome jesu li priključeni portovi DTE ili DCE. | Koristite kratke veze od točke do točke i zajedničku signalnu masu. |
RS-485 | Povežite A s A i B s B prema oznakama priključaka obaju uređaja; povežite referencu signala / GND gdje to zahtijeva instalacija. | Koristite lančanu topologiju. Nemojte koristiti zvjezdasto ožičenje. Terminaciju voda primijenite samo na dva fizička kraja, gdje je potrebna. |
Uvijek slijedite oznake priključaka uređaja Neutron i shemu ožičenja isporučenu uz uređaj. Proizvođači ne označavaju uvijek polaritet RS-485 na isti način; ako se komunikacija ne uspostavi, provjerite polaritet A/B i konfiguraciju nadređenog uređaja.
Ove upute koriste konvencionalni referentni zapis Modbus (primjerice 40101). Mnogi klijentski alati Modbus koriste početne adrese s polazištem u nuli. U takvim alatima uklonite vodeću znamenku područja registara i oduzmite 1 od referentne adrese.
Referentni zapis | Početna adresa s polazištem u nuli | Primjer |
|---|---|---|
| | Holding registar 40001 |
| | Holding registar 40101 |
| | Holding registar 40232 |
| | Holding registar 40380 |
Prije puštanja u rad provjerite način adresiranja nadređenog uređaja Modbus. Pomak od jednog registra najčešći je razlog pogrešnog tumačenja podataka.
Bruto masa, neto masa i tara predstavljene su 32-bitnim cijelim brojevima s predznakom pohranjenima u dva uzastopna 16-bitna registra.
Najprije se prenosi viša riječ (redoslijed registara big-endian).
Položaj decimalnog mjesta navodi se u registru konfiguracije izlaza/statusa, bitovi 14..13.
Registri bruto i neto mase visoke razlučivosti 40109–40112 koriste dva dodatna decimalna mjesta kada je vrijednost visoke razlučivosti dostupna.
Primjer: kada polje decimalnog položaja označava 2 decimale, 32-bitna vrijednost s predznakom 12345 predstavlja 123.45 u aktivnoj jedinici. Jedinica je dostupna u registru 40113, a kodirana je i u registru konfiguracije izlaza/statusa.
Funkcija | Naziv | Primjena u uređaju Neutron |
|---|---|---|
| Read Coils | Čita stanja digitalnih izlaza (coils 1..6 odgovaraju DO1..DO6). |
| Read Holding Registers | Čita registre u koje je moguć upis i registre povezane s naredbama. |
| Read Input Registers | Čita procesne podatke, mase i statusne registre. |
| Write Single Coil | Postavi jedan digitalni izlaz gdje je izlazna funkcija onemogućena. |
| Write Single Register | Upisuje jedan holding registar, uključujući polja povezana s naredbama. |
| Write Multiple Coils | Postavi višestruke digitalne izlaze gdje su funkcije onemogućene. |
| Write Multiple Registers | Upisuje naredbu, parametre i podatke umjeravanja kao blok. |
Upisi na izlaze kojima upravlja konfigurirana izlazna funkcija odbijaju se. Tipični izlazi kojima upravlja funkcija uključuju izlaze tolerancije i doziranja.
Referenca ulaznog / holding registra | Opis | Vrsta podataka / napomene |
|---|---|---|
| Bruto masa | INT32 s predznakom, big-endian redoslijed registara. |
| Neto masa | INT32 s predznakom, big-endian redoslijed registara. |
| Status vage | Bitno polje; pogledajte odjeljak 6.3. |
| Status naredbe | Stanje obrade naredbe. |
| Konfiguracija izlaza/statusa | Bitno polje: izlazi, jedinica i položaj decimalnog mjesta. |
Glavna mapa omogućuje jednostavnim nadređenim uređajima dohvat neto ili bruto mase i ključnih statusnih podataka korištenjem malog neprekinutog raspona registara.
Holding registar | Opis | Vrsta podataka / napomene |
|---|---|---|
| Bruto masa | INT32 s predznakom. |
| Neto masa | INT32 s predznakom. |
| Tara | INT32 s predznakom. |
| Status vage | Bitno polje; pogledajte odjeljak 6.3. |
| Konfiguracija izlaza/statusa | Bitno polje; pogledajte odjeljak 6.3. |
| Bruto masa visoke razlučivosti | INT32 s predznakom; dva dodatna decimalna mjesta kada su dostupna. |
| Neto masa visoke razlučivosti | INT32 s predznakom; dva dodatna decimalna mjesta kada su dostupna. |
| Jedinica | 0 = g; 1 = kg; 2 = t; 3 = lb. |
| Digitalna ulazna maska | Bitovi 0..5 = DI1..DI6. |
| digitalna izlazna maska | Bitovi 0..5 = DO1..DO6. |
| maska funkcije izlaza | Postavljen bit znači da odgovarajućim izlazom upravlja funkcija. |
| ADC točke | Neobrađena ADC vrijednost. |
| Milivolti | Signal mjerne ćelije u mV. |
| Status naredbe | Stanje obrade naredbe. |
| Naredba | Ovdje upišite kôd naredbe. |
| Parametar naredbe 1 | Neobvezni parametar naredbe u 40232. |
Bit | Značenje (ako je vrijednost bita=1) |
|---|---|
| Neto masa je negativna. |
| Bruto masa je negativna. |
| Masa je stabilna. |
| Stanje premalog opterećenja. |
| Preopterećenje. |
| Tara je aktivna. |
| Unaprijed zadana / ručna tara je aktivna. |
| Bruto masa je nula. |
| Digitalni ulaz 1 je aktivan. |
| Digitalni ulaz 2 je aktivan. |
| Aktivna je pogreška vage / ADC-a. |
Bit(i) | Značenje |
|---|---|
| Digitalni izlazni status: DO1..DO6. |
| Kôd aktivne jedinice: 0 = g; 1 = kg; 2 = t; 3 = lb. |
| Pogreška vage / mjerne ćelije. |
| Kôd položaja decimalnog mjesta za standardne vrijednosti mase. |
Za aplikacije kojima su potrebna sva stanja izlaza koristite registar 40115. Registrom 40116 utvrdite koje izlaze trenutačno koristi aktivna funkcija.
Upišite kôd naredbe u holding registar 40232. Neobvezni parametar upišite u 40233 prije izdavanja naredbe. Status naredbe može se očitati iz 40231. Kôd naredbe 0 poništava zaštitu od ponavljanja i omogućuje ponovno izvršavanje iste naredbe.
Kôd naredbe | Parametar 40233 | Radnja |
|---|---|---|
| | Bez naredbe; poništi zaštitu od ponavljanja. |
| | Nuliranje nakon provjere stabilnosti. |
| | Trenutačno nuliranje. |
| | Tariranje nakon provjere stabilnosti. |
| | Trenutačno tariranje. |
| | Obriši taru. |
| Bitna maska izlaza | Postavlja digitalne izlaze prema bitnoj maski. |
Prečac: upis koda naredbe u holding registar 40001 također izvršava naredbu. Za predvidivu integraciju preporučuju se prošireni registri naredbi 40232 i 40233, osobito kada je potreban parametar.
Coils 1..6 odgovaraju DO1..DO6.
Koristi funkcije 01, 05 i 15 za čitanje ili pisanje zavojnica.
Izlaz se može promijeniti kroz Modbus samo ako je njegova izlazna funkcija onemogućena.
Ako izlazom upravlja tolerancija, doziranje ili druga aktivna funkcija, uređaj odbija upise na taj izlaz putem protokola Modbus.
Primjer: za aktiviranje DO1 i DO3 kodom naredbe 25 upišite binarnu bitnu masku 000101 (decimalno 5) u 40233, a zatim upišite 25 u 40232. Provjerite rezultat putem registra 40115 ili coils 1..6.
Umjeravanje se provodi putem holding registara. Podaci uspješnog umjeravanja pohranjuju se u flash memoriju. Ako umjeravanje ne uspije, promijenjeni podaci ne spremaju se.
Referenca holding registra | Početak s polazištem u nuli | Opis |
|---|---|---|
| | Bitno polje statusa umjeravanja. |
| | Kanal vage. |
| | Broj decimalnih mjesta za mase koje se koriste pri umjeravanju. |
| | Broj valjanih točaka umjeravanja. |
| | Nulta ADC točka, INT32 s predznakom. |
Bit statusa umjeravanja | Značenje |
|---|---|
| Nulta točka postoji. |
| Postoji prva točka umjeravanja s opterećenjem. |
| Vaga ima minimalno valjano umjeravanje. |
| Aktivna je pogreška vage / ADC-a. |
Točka 1 počinje na 40310 (početak s polazištem u nuli 309). Svaka točka umjeravanja koristi osam registara. Početni registar točke N je 40310 + ((N - 1) x 8).
Pomak u bloku točke | Opis |
|---|---|
| Zastavica valjanosti: 0 = nevaljano; 1 = valjano. |
| Masa za umjeravanje, INT32 s predznakom. |
| ADC točka, INT32 s predznakom. |
| Faktor x100, INT32 s predznakom. |
| Rezervirano. |
Primjeri: točka 1 = 40310-40317; točka 2 = 40318-40325; točka 3 = 40326-40333; točka 8 = 40366-40373.
Referenca holding registra | Početak s polazištem u nuli | Opis |
|---|---|---|
| | Naredba. |
| | Broj točke. |
| | Masa za umjeravanje, INT32 s predznakom. |
| | Zastavice. |
| | Okidač. |
| | Rezultat naredbe. |
| | Zadnja izvršena naredba. |
Naredba | Opis |
|---|---|
| Umjeri nulu. |
| Umjeri točku s opterećenjem. |
| Obriši točku umjeravanja. |
| Briši nultu točku. |
| Obriši sve podatke umjeravanja. |
| Učitaj/inicijaliziraj vagu. |
Registar zastavica 40384: bit 0 određuje zahtijeva li se stabilnost. Vrijednost 0 izvršava radnju odmah; vrijednost 1 zahtijeva stabilan ADC prosjek. Svi ostali bitovi zastavica rezervirani su.
Rezultat 40386 | Značenje |
|---|---|
| OK. |
| Neispravna naredba. |
| Neispravni podaci. |
| Nije dopušteno. |
| Nepodržana naredba. |
| Umjeravanje nije uspjelo. |
Firmware obrađuje umjeravanje samo kada se registar okidanja 40385 promijeni na vrijednost različitu od nule. Za svaku naredbu umjeravanja primijenite sljedeći slijed:
Upišite naredbu i sve potrebne parametre.
Upišite 40385 = 1 za izvršavanje radnje.
Pričekajte dovršetak naredbe i očitajte 40386.
Upišite 40385 = 0 za poništavanje okidača.
Za sljedeću naredbu upišite parametre i ponovno promijenite 40385 na 1.
Naredba | Umjeravanje nule |
|---|---|
Namjena | Write Multiple Registers s početkom na adresi 379 s polazištem u nuli. |
Odgovori | |
| Naredba: umjeravanje nule. |
| Broj točke se ne koristi. |
| Masa za umjeravanje se ne koristi. |
| Zahtijeva stabilan ADC prosjek. |
| Okidanje radnje. |
Čitajte 40386 | Očekivan rezultat: 0 (OK). |
Naredba | Umjeri točku 1 opterećenjem od 10.000 kg |
|---|---|
Namjena | Za 40302 = 3 pomnožite masu za umjeravanje s 1000. |
Odgovori | |
| Naredba: umjeravanje točke s opterećenjem. |
| Broj točke 1. |
| 10.000 kg x 1000. |
| Zahtijeva stabilan ADC prosjek. |
| Okidanje radnje. |
Čitajte 40386 | Očekivan rezultat: 0 (OK). |
Naredba | Obriši točku 1 |
|---|---|
Namjena | Ukloni prvu točku umjeravanja. |
Odgovori | |
| Naredba: obriši točku umjeravanja. |
| Broj točke 1. |
| Okidanje radnje. |
Naredba | Obriši sve podatke umjeravanja |
|---|---|
Namjena | Ukloni sve pohranjene podatke umjeravanja. |
Odgovori | |
| Naredba: obriši sve podatke umjeravanja. |
| Okidanje radnje. |
Konfigurirajte SCI za potrebnu kombinaciju sučelja i postavite MBA na željeni ID podređenog uređaja / jedinice Modbus.
Za Modbus TCP provjerite IP adresu i povežite se s TCP portom 502. Za Modbus RTU uskladite serijske parametre i provjerite ožičenje.
Očitajte poznati registar poput 40113 (jedinica) ili 40107 (status vage) kako biste provjerili adresiranje.
Očitajte 40101-40106 i dekodirajte 32-bitne vrijednosti bruto, neto i tare s predznakom prema navedenom položaju decimalnog mjesta.
Provjerite status vage te digitalne ulaze i izlaze prije omogućavanja upravljačkih funkcija.
Registre naredbi i funkcije umjeravanja koristite tek nakon potvrde da su aktivni odgovarajući kanal vage i stanje aplikacije.
Simptom | Vjerojatni uzrok | Radnja |
|---|---|---|
Nema odgovora Modbus | Komunikacijsko sučelje vage (SCI) nije konfigurirano za odabrano sučelje; pogrešan IP/port ili serijske postavke; neispravno ožičenje. | Provjerite SCI, TCP port 502, MBA, mrežnu dostupnost, serijske parametre i fizičko ožičenje. |
Vrijednosti izgledaju pomaknuto ili nevaljano | Klijent koristi pogrešnu pretvorbu referentne adrese u adresu registra s polazištem u nuli; 32-bitne riječi dekodirane su pogrešnim redoslijedom. | Provjerite način adresiranja klijenta i koristite INT32 s predznakom uz redoslijed registara big-endian. |
Masa ima pogrešan položaj decimalnog mjesta | Klijent zanemaruje konfiguraciju položaja decimalnog mjesta ili format visoke razlučivosti. | Očitajte 40108 i primijenite bitove 14..13; registre visoke razlučivosti koristite samo kada su potrebni. |
Nije moguć upis izlaza | Izlazom upravlja dodijeljena funkcija. | Očitajte 40116 i isključite odgovarajuću izlaznu funkciju prije upravljanja izlazom putem protokola Modbus. |
Ista se naredba ne izvršava ponovno | Zaštita od ponavljanja nije poništena. | Upišite naredbu 0 u 40232, a zatim ponovno izdajte naredbu. |
Naredba umjeravanja nema učinka | Okidač se nije promijenio na vrijednost različitu od nule ili nije poništen nakon prethodne naredbe. | Postavite sve parametre, promijenite 40385 na 1, očitajte 40386, a zatim ponovno upišite 0 u 40385. |
Sigurnosna napomena: Umjeravanje, nuliranje, tariranje i upravljanje izlazima mogu utjecati na rezultat vaganja i povezane strojeve. Primijenite kontrolu pristupa, provjeravajte naredbe u nadređenoj aplikaciji i osigurajte da su sve radnje u skladu s primjenjivim mjeriteljskim zahtjevima i zahtjevima sigurnosti strojeva.
Ovo poglavlje opisuje osnovno sučelje CHECKWEIGHER, verziju mape registara 1. Podržava čitanje statusa procesa i posljednjeg dovršenog rezultata, odabir postojećeg recepta, postavljanje automatskog pokretanja te START / STOP / STOP NOW / RESET. Uređivanje recepata, konfiguriranje filtara, odabir aplikacije, dodjela I/O funkcija i detaljni tok dijagnostičkih podataka nisu uključeni. To konfigurirajte putem uobičajenog sučelja za postavljanje prije upotrebe ovog bloka.
Mapa je jednaka za Modbus TCP i omogućena sučelja Modbus RTU. Koristite jednog upravljačkog klijenta / nadređeni uređaj; dodatni čitači mogu nadzirati podatke. Postoji jedan zajednički pretinac naredbi za sve transporte, a ne po jedan za svakog klijenta. Nemojte koristiti zahtjeve za emitiranje svim uređajima za ovo sučelje. Prije upravljanja očitajte blok i potvrdite application=4 (CHECKWEIGHER), kanal i valjanost snimke stanja.
Adrese u nastavku PDU adrese su s polazištem u nuli. Za klijente koji koriste zapis 4xxxx vrijedi referenca = 40001 + adresa: adresa 400 je 40401, a adresa 480 je 40481. Za čitanje koristite funkciju 03 (ili 04). Naredbe upisujte isključivo funkcijom 16 (0x10), s početkom na 480 i upisom točno osam registara. Funkcija 06 i djelomični upisi odbijaju se. Registri rezultata/statusa dostupni su samo za čitanje. Razmak između bloka za čitanje i bloka za upis nije čitljiv.
Očitajte adresu 400, count 48 za dohvat statusa, potvrde naredbe i posljednjeg rezultata u jednom zahtjevu. Alternativno očitajte 400/count 24 za status ili 424/count 24 za rezultat. Sve 32-bitne vrijednosti prenose najprije višu riječ; svaki registar koristi standardni redoslijed Modbus s višim bajtom prvim. Nemojte dijeliti 32-bitnu vrijednost između zasebnih zahtjeva.
PDU / referenca | Riječi | Naziv / vrsta | Opis |
|---|---|---|---|
| | MAP_VERSION / UINT16 | 1 za ovu mapu. |
| | BOOT_ID / UINT32 | Nenulti nasumični token sesije generiran pri pokretanju uređaja. Ponovite ga pri svakom upisu; ne zadržava se nakon ponovnog pokretanja. To nije sigurnosna vjerodajnica. |
| | CHANNEL / UINT16 | Trenutačni kanal vaganja. |
| | APPLICATION / UINT16 | Mora biti 4 za kontrolu. |
| | STATE / UINT16 | 0 IDLE; 1 START_CHECK; 2 RUN; 3 DRAINING; 4 PAUSED; 5 STOPPED; 6 ERROR; 7 CONS_LOST. |
| | ACTIVE_ID / UINT16 | Izabrani recept; može se razlikovati od RESULT_ID prethodnog proizvoda. |
| | AUTOSTART / UINT16 | Trajna postavka CWAUTO: 0 onemogućeno, 1 omogućeno. |
| | PROCESS_ERROR / UINT16 | Trenutačna blokirajuća pogreška procesa; 0 nema pogreške. |
| | BELT / UINT16 | Logički zahtjev za pokretanje trake, 0/1; nije povratna informacija motora. |
| | CONS / INT16 | -1 (0xFFFF) nije dodijeljen; 0 nije aktivan; 1 aktivan. |
| | PQ / UINT16 | Proizvodi na čekanju. |
| | EQ / UINT16 | Izlazni događaji na čekanju / aktivni izlazni događaji. |
| | AUTO_STATE / UINT16 | Ishod automatskog pokretanja: pogledajte 10.5. |
| | AUTO_ERROR / UINT16 | Pogreška automatskog pokretanja pri uključivanju uređaja; 0 nema pogreške. |
| | SNAPSHOT_VALID / UINT16 | 1 upotrebljiva snimka stanja; 0 nedostupna. Prije upravljanja provjerite i APPLICATION. |
| | REQUEST_ID / UINT32 | Zadnji prihvaćeni zahtjev; promjene odmah po prihvaćanju. |
| | ACK_ID / UINT32 | Posljednji dovršeni zahtjev. 0 znači da od pokretanja nije bilo nijednog. |
| | COMMAND_STATE / UINT16 | 0 IDLE; 1 BUSY; 2 DONE; 3 ERROR. |
| | COMMAND_ERROR / UINT16 | Aplikacijska pogreška dovršenog zahtjeva; pogledajte 10.4. |
| | APPLIED_MASK / UINT16 | Bit 0 primijenjen odabir recepture; bit 1 primijenjeno automatsko pokretanje. Može biti različito od nule kada START ne uspije. |
| | LAST_COMMAND / UINT16 | Kôd naredbe posljednjeg prihvaćenog zahtjeva. |
| | RESULT_SEQ / UINT32 | Sekvenca zadnjeg završenog proizvoda; usporedite zajedno s BOOT_ID. |
| | RESULT_ID / UINT16 | Receptura korištena za ovaj rezultat. |
| | RESULT_FLAGS / UINT16 | Bit 0 rezultat postoji; bit 1 masa je valjana i može se prikazati; bit 2 granice se mogu prikazati; bit 3 preljev ili nevaljana brojčana pretvorba. |
| | DECIMALS / UINT16 | Decimalna mjesta za W, LO i HI ovog rezultata. |
| | UNIT / UINT16 | 0 g; 1 kg; 2 t; 3 lb; 4 oz; 5 N; 65535 drugo/nepoznato. Za nepoznate jedinice nemojte pretpostaviti g. |
| | W / INT32 | Neto masa uključujući taru; podijelite s 10^DECIMALS. Koristite samo kada je postavljen bit 1 u RESULT_FLAGS. |
| | LO / INT32 | Donja granica tolerancije; koristite samo kada je postavljen bit 2 zastavica. |
| | HI / INT32 | Gornja granica tolerancije; koristite samo kada je postavljen bit 2 zastavica. |
| | WS / UINT16 | Razvrstavanje prema masi: 0 LOW; 1 OK; 2 HIGH; 3 ERROR. |
| | LTS / UINT16 | Duljina: 0 OK; 1 LENGTH_LOW; 2 LENGTH_HIGH; 3 DISABLED. |
| | RESULT / UINT16 | 0 LOW; 1 OK; 2 HIGH; 3 ERROR; 4 OVERLAP; 5 ABORTED; 6 ABORTED_CONS. |
| | PRODUCT_ERROR / UINT16 | Pogreška ovog proizvoda; odvojena od PROCESS_ERROR. |
| | NS / UINT16 | Prihvaćeni uzorci posljednjeg dovršenog rezultata, prije izostavljanja rubnih uzoraka; nije broj uzoraka trenutačnog proizvoda. |
| | TD / UINT32 | Vrijeme otkrivanja u milisekundama od pokretanja; vraća se na početak nakon približno 49.7 dana. |
| | ET / UINT32 | Milisekunde od otkrivanja do rezultata. |
| | LT / UINT32 | Trajanje stanja ON senzora proizvoda u milisekundama; 0 u načinu okidanja masom. |
| | RESERVED / UINT16 | 0; ignoriraj za inačicu 1. |
Status i posljednji rezultat kopiraju se uz zaključavanje procesa. Svaki odgovor sadrži dosljedan presjek stanja; sljedeći zahtjev može vidjeti novije podatke. RESULT_SEQ, RESULT_ID, DECIMALS i UNIT pripadaju pohranjenom rezultatu, a ne trenutačno odabranom receptu. Prije prvog rezultata bit 0 zastavica nije postavljen: polja rezultata ispunjena nulama nemojte tumačiti kao stvarni proizvod mase nula. Čitanje nikada ne troši niti briše rezultat.
Primjer: W high=0x0000, low=0x07D1 daje cijeli broj s predznakom 2001. Uz DECIMALS=1 i UNIT=0 masa iznosi 200.1 g. Negativne vrijednosti koriste 32-bitni dvojni komplement. Ako pretvorba premaši INT32 ili se vrijednost vage ne može predstaviti, odgovarajući bit valjanosti nije postavljen, njegovi brojčani registri su nula i postavljen je bit 3 zastavica. Izvorni rezultat proizvoda ne mijenja se.
Adresa / referenca | Naziv | Vrijednost |
|---|---|---|
| | 0 samo postavke; 1 START; 2 STOP DRAIN; 3 STOP NOW; 4 RESET. |
| CHANGE_MASK | Bit 0: odaberi RECIPE_ID. Bit 1: postavi AUTOSTART. Ostali bitovi moraju biti 0. |
| RECIPE_ID | 1–500 kada je postavljen bit 0 maske. U suprotnom upišite 0. Receptura mora već postojati. |
| | 0 ili 1 kada je postavljen bit 1 maske. U suprotnom upišite 0. |
| REQUEST_ID | |
| BOOT_ID | |
Za COMMAND 2, 3 ili 4, CHANGE_MASK, RECIPE_ID i AUTOSTART moraju svi biti 0. Postavke se mogu kombinirati s COMMAND 0 ili 1. Promjene odabira recepta i automatskog pokretanja zahtijevaju zaustavljen proces iz kojeg su svi proizvodi izašli. START bez bita promjene recepta pokreće trenutačno odabrani recept. Odabir aplikacije i izrada recepta ostaju izvan opsega protokola Modbus.
Cijeli se okvir provjerava prije prihvaćanja. Djelomični upisi kontrolnog bloka nemaju učinka. Uobičajen odgovor funkcije 16 znači da je zahtjev prihvaćen u pretinac naredbi, a ne da je START uspio. Izvršavanje se odvija iz postojeće glavne petlje. Ponavljajte očitanje dok ACK_ID ne bude jednak poslanom ID-u, a COMMAND_STATE bude DONE ili ERROR. BUSY može trajati prekratko da biste ga uočili; prije prihvaćanja DONE nikada nemojte zahtijevati prethodno opažanje tog stanja.
U svakom trenutku neka samo jedan zahtjev čeka odgovor. Ako istekne vrijeme upisa, ponovno očitajte BOOT_ID, REQUEST_ID i ACK_ID. Ako se token pokretanja nije promijenio, po potrebi ponovno pošaljite potpuno istih osam riječi. Ponavljanje posljednjeg prihvaćenog zahtjeva s identičnim podacima potvrđuje se bez ponovnog izvršavanja, bez obzira na to je li zahtjev u tijeku ili je dovršen. Isti ID s promijenjenim podacima, preskočeni/stari ID-ovi, drukčiji token pokretanja ili dodatni zahtjev dok je stanje BUSY odbijaju se. Nakon ponovnog pokretanja uskladite se s novim tokenom i trenutačnim stanjem procesa; nemojte automatski ponavljati stari START.
Za otkrivanje duplikata zadržava se samo posljednji zahtjev; ne postoji trajni dnevnik naredbi. Ponovno pokretanje mreže bez ponovnog pokretanja uređaja ne briše pretinac naredbi. Ovaj protokol pretpostavlja jedan upravljački PLC i ne rješava sukobe više klijenata koji upisuju podatke. Token pokretanja i brojač zahtjeva sprječavaju slučajna ponavljanja, a ne neovlašten pristup.
Najprije se primjenjuje odabir recepture, zatim automatsko pokretanje, a naredba posljednja. Prije promjene postavki provjeravaju se sintaksa, raspon ID-ja i valjanost recepture. Pogreške flash memorije ipak mogu ostaviti raniju postavku primijenjenom. APPLIED_MASK točno navodi koje su tražene postavke uspjele. Primjerice, receptura 25 i AUTOSTART=1 mogu biti spremljeni dok je START odbijen jer je CONS neaktivan: COMMAND_STATE=ERROR, COMMAND_ERROR=11, APPLIED_MASK=3. Postavke se ne vraćaju na prethodno stanje. Ponovno očitajte ACTIVE_ID i AUTOSTART prije odluke što ponoviti.
Kodovi pogrešaka u nastavku pripadaju COMMAND_ERROR i ne smiju se zamijeniti s poljima pogrešaka procesa/proizvoda. Odbijeni upis na transportnoj razini ne mijenja pretinac naredbi ni ACK_ID. Nedopuštene adrese, upisi u polja samo za čitanje, djelomični upisi i nepodržani rasponi blokova vraćaju iznimku Modbus 02. Ispravno adresiran upravljački upis od osam riječi s nevaljanim podacima, tokenom, rednim brojem ili stanjem pretinca vraća iznimku 03.
Kôd | Značenje |
|---|---|
| Uspjeh. |
| Odabrana receptura nedostaje ili nije valjana. |
| START odbijen: masa izvan dopuštenog raspona. |
| Potrebna memorija nije dostupna. |
| Konfigurirani CONS je neaktivan. |
| Jedinica recepture ne odgovara vagi. |
| Konfiguracija ili stanje senzora sprječava radnju. |
| Pogrešna aplikacija, proces u radu, neriješen kvar ili sukobljena radnja vage. |
| Nevaljani argumenti zahtjeva ili mjerni sustav nije spreman. |
| Neuspješno čitanje ili upis postavki/baze podataka. |
STOP DRAIN ne prihvaća nove proizvode te dovršava već prihvaćene proizvode i izlazne događaje. Njegova potvrda DONE znači da je zaustavljanje zatraženo; STATE=5 potvrđuje dovršetak. STOP NOW otkazuje otvorene proizvode/događaje i deaktivira procesne izlaze. STOP nije zamjena za RESET kod blokirajuće greške. RESET ponovno provjerava vagu i preduvjete te ne pokreće traku; ako uzrok ostane, ne uspijeva. Sve naredbe koriste uobičajene blokade kontrolne vage. Rezultat je ishod mjerenja, a ne potvrda da je fizički izvršni element za izbacivanje djelovao.
AUTOSTART je trajna postavka CWAUTO, zadano 0. Njezino omogućivanje ne pokreće proces odmah; za trenutačni START kombinirajte je s COMMAND=1. Pri sljedećem pokretanju uređaja mora biti odabrana aplikacija CHECKWEIGHER, početno nuliranje mora biti omogućeno i uspješno te mora biti dostupan valjan posljednji aktivni trajni recept. Uobičajene provjere za START i dalje vrijede. Neuspjeli pokušaj pri pokretanju ne ponavlja se kada se kasnije promijeni neki ulaz. Ručni STOP, PAUSE ili greške ne uzrokuju automatsko ponovno pokretanje. Nepromijenjene vrijednosti ne uzrokuju novi upis postavki.
AUTO_STATE: 0 DISABLED; 1 WAIT_ZERO; 2 ZERO_DISABLED; 3 ZERO_FAILED; 4 NO_PRODUCT; 5 STARTED; 6 START_FAILED; 7 CANCELLED; 8 INACTIVE; 9 INIT_FAILED. AUTO_ERROR je kôd odbijenog START-a pri pokretanju uređaja. To je ishod pokušaja pri pokretanju; STATE i PROCESS_ERROR opisuju trenutačni proces.
Primjer 1 — očitajte sve: funkcija 03, PDU start=400, count=48 (referenca 40401). Provjerite MAP_VERSION=1, APPLICATION=4 i SNAPSHOT_VALID=1. Spremite BOOT_ID i ACK_ID. Za čitanje podataka nije potrebna naredba.
Primjer 2 — odaberite recept 25, omogućite automatsko pokretanje i START jednim upisom. Pretpostavite BOOT_ID=0x12345678 i ACK_ID=0. Upišite funkcijom 16, PDU start=480, count=8, uz decimalne riječi: [1, 3, 25, 1, 0, 1, 4660, 22136]. Riječi tokena pokretanja služe kao primjer: uvijek ih kopirajte s uređaja. Pričekajte ACK_ID=1 i COMMAND_STATE=2, a zatim provjerite STATE=2 (RUN). Ako je COMMAND_STATE=3, provjerite COMMAND_ERROR i APPLIED_MASK.
Primjer 3 — STOP DRAIN. Pod pretpostavkom da je prethodni zahtjev dovršen, pošaljite [2, 0, 0, 0, 0, 2, 4660, 22136]. Pričekajte ACK_ID=2. DONE potvrđuje prihvaćanje; nastavite ponavljati očitanje do STATE=5 (STOPPED). Proizvodi koji su još u obradi mogu dati rezultate tijekom stanja DRAINING.
Primjer 4 — promijenite samo recepturu, nakon zaustavljanja: [0, 1, 26, 0, 0, 3, 4660, 22136]. Time automatsko pokretanje ostaje nepromijenjeno i proces se ne pokreće. Pokrenite ga poslije s [1, 0, 0, 0, 0, 4, 4660, 22136].
Primjer 5 — poništavanje ispravljene greške: COMMAND=4 uz mask/recipe/autostart=0, sljedeći ID zahtjeva i trenutačni BOOT_ID. Pričekajte uspješnu potvrdu; po potrebi zasebno pošaljite START. Nemojte ponavljano slati RESET bez dijagnosticiranja greške.
Predložena ciklička PLC logika (pseudokod Structured Text; nazive blokova Modbus prilagodite svojem PLC-u):
ReadHoldingRegisters(Start := 400, Count := 48, Data := Rx);
BootId := JoinUInt32(Rx[1], Rx[2]);
AckId := JoinUInt32(Rx[18], Rx[19]);
IF BootId <> SavedBootId THEN
SavedBootId := BootId; HaveSeenResult := FALSE;
(* Resynchronise command handling; do not replay old START. *)
END_IF;
IF (Rx[15] = 1) AND ((Rx[27] AND 1) <> 0) THEN
Seq := JoinUInt32(Rx[24], Rx[25]);
IF NOT HaveSeenResult OR (Seq <> SavedSeq) THEN
SavedSeq := Seq; HaveSeenResult := TRUE;
IF ((Rx[27] AND 2) <> 0) AND (Rx[29] <> 65535) THEN
Mass := SignedInt32(Rx[30], Rx[31]) / Power10(Rx[28]);
END_IF;
Samples := Rx[40]; ProductResult := Rx[38];
(* Process this snapshot once, including invalid/rejected products. *)
END_IF;
END_IF;NS se odnosi na posljednji dovršeni proizvod i ne mijenja se dok ne stigne novi rezultat. Blok registara posljednjeg rezultata nije red čekanja: ako dva proizvoda završe između očitanja, međurezultat se ne može dohvatiti putem ove osnovne mape. Pratite promjene SEQ i odaberite interval očitanja kraći od najkraćeg intervala između proizvoda. Nakon ponovnog povezivanja odlučite treba li prvi dostupni rezultat zabilježiti kao naknadno dohvaćenu snimku stanja ili ga koristiti samo kao početnu osnovu. Ovo sučelje ne jamči revizijski trag za svaki proizvod.
Provjerite oba načina adresiranja, redoslijed riječi i poznate pozitivne/negativne mase; očitajte svih 48 riječi i oba podbloka od 24 riječi.
Provjerite zastavice bez rezultata prije prvog proizvoda, zatim proizvod OK, LOW i nevaljani proizvod; potvrdite da ID i jedinica rezultata ostaju vezani uz pohranjeni rezultat nakon promjene odabrane recepture.
Ponovite identičan prihvaćeni upis prije/nakon dovršetka: mora se izvršiti samo jednom. Pokušajte promijeniti sadržaj s istim ID-jem, preskočiti ID, izvršiti djelomični upis i upis u polje samo za čitanje: svaki mora biti odbijen bez promjene prihvaćenih postavki.
Ispitajte START uz neaktivan CONS i provjerite APPLIED_MASK; ispitajte STOP DRAIN do stanja STOPPED, STOP NOW, RESET greške i zatim START.
Prekinite i ponovno uspostavite vezu te ponovno pokrenite uređaj. Provjerite ponovno usklađivanje zahtjeva i odbijanje starog tokena pokretanja. Ispitajte uključeno/isključeno automatsko pokretanje uz uspješno i neuspješno početno nuliranje.
Ponovite na stvarnom PLC-u i na oba konfigurirana transporta TCP/RTU. Potvrdite da ciklička komunikacija ne ometa vaganje ili vremensko upravljanje izlazima.
Tablice registara koriste reference 4xxxx koje počinju od jedan. Za referencu 40101 PDU adresa s polazištem u nuli je 100. Koristite način adresiranja koji zahtijeva vaš klijent Modbus.
Bruto i neto mase visoke razlučivosti u registrima 40109–40112 koriste dva dodatna decimalna mjesta kada su dostupna. Dekodirajte ih kao 32-bitne vrijednosti s predznakom i uzmite u obzir konfiguraciju položaja decimalnog mjesta.
Ne. Sadrži rezultat posljednjeg dovršenog proizvoda i ostaje nepromijenjen dok ne stigne novi rezultat. Pratite SEQ i odaberite interval očitanja kraći od najkraćeg intervala između proizvoda. Međurezultati se ne mogu dohvatiti iz ove osnovne mape.
Ponovno uskladite obradu naredbi kada se promijeni BOOT_ID. Očitajte trenutačni BOOT_ID i ACK_ID, nemojte ponavljati stari START te slijedite redoslijed i provjere pretinca naredbi opisane u primjerima PLC-a.
CSCP referenca za Neutron: struktura poruke, vaganje, konfiguracija, brojanje, kontrolno vaganje i digitalni I/O.
OPC UA integracija za Neutron: sigurne veze, podaci o vaganju uživo, dohvat stabilnog mjerenja i integracija s PLC-om/SCADA-om.
Trebate pomoć sa softverom, povezivošću ili uporabom rješenja? Opišite problem kako bismo vam pomogli odrediti sljedeći korak.