CSCP – CloudScale Communication Protocol: navodila
Referenčni priročnik CSCP za Neutron: zgradba sporočil, tehtanje, konfiguracija, štetje, kontrolno tehtanje ter digitalni vhodi in izhodi.
NEUTRON · KOMUNIKACIJSKI PROTOKOL
Referenčna navodila Neutron Modbus RTU/TCP za integracijo s PLC, SCADA in HMI: povezava, naslavljanje, registri, kalibracija in krmiljenje avtomatske kontrolne tehtnice.

Različica | Datum | Opis spremembe |
|---|---|---|
| Junij 2026 | Prva izdaja navodil za Neutron Modbus. |
CloudScale Neutron NS in Neutron NT omogočata vmesnik Modbus za branje tehtalnih podatkov, statusov, digitalnih vhodov in izhodov ter kalibracijskih podatkov in za izvajanje izbranih ukazov tehtnice. Vmesnik je namenjen povezovanju s PLC, SCADA, HMI, MES in lastno programsko opremo.
Neutron podpira naslednji izvedbi komunikacije Modbus:
Modbus RTU prek RS-232 ali RS-485. Privzeti naslov podrejene naprave oziroma Unit ID je 1.
Modbus TCP prek Wi-Fi ali Etherneta. Privzeta vrata TCP so 502.
Razpoložljive funkcije in območja registrov tvorijo enak logični vmesnik za Modbus TCP in Modbus RTU. Pri TCP se Unit Identifier uporablja tam, kjer ga zahteva odjemalec ali prehod.
Pomembno: pred povezavo nadrejene naprave Modbus v Neutronu nastavite komunikacijske parametre, med drugim serijska in omrežna vrata. Naprava uporablja naslov Modbus, določen s parametrom MBA.
Modbus TCP deluje prek omrežne povezave Neutrona. Uporabite naslov IP naprave in vrata TCP 502. Za TCP ni treba nastaviti serijske povezave.
Za Modbus TCP med komunikacijskimi vmesniki tehtnice izberite Modbus TCP (parameter SCI). Hkrati lahko uporabljate druge vmesnike, na primer RS-232 za povezavo z računalnikom prek protokola CSCP.
Nastavitev | Rezultat |
|---|---|
SCI = 10 | Omogoči samo Modbus TCP. |
SCI = 5,10 | Omogoči običajno komunikacijo tehtnice prek RS-232 skupaj z Modbus TCP. |
SCI = 6,10 | Omogoči običajno komunikacijo tehtnice prek RS-485 skupaj z Modbus TCP. |
| Nastavi naslov podrejene naprave Modbus oziroma Unit ID. Privzeto: 1. |
Vrata TCP | |
Kadar je navedenih več vrednosti SCI, vmesnike nastavite skladno z izbrano komunikacijsko konfiguracijo Neutrona. Po spremembah znova zaženite komunikacijo oziroma napravo, če to zahteva meni z nastavitvami.
Postavka | Primer |
|---|---|
Nadrejena naprava Modbus | |
Prenos | Ethernet ali Wi-Fi TCP/IP |
Ciljni naslov | Naslov IP Neutrona |
Vrata storitve | |
Unit ID | Vrednost MBA; privzeto 1 |
Za stabilno industrijsko povezavo uporabite Ethernet, kadar je na voljo žično omrežje. Wi-Fi lahko povzroči zakasnitve, odvisne od omrežja, zato njegovo delovanje preizkusite v dejanskem okolju uporabe.
Modbus RTU deluje prek RS-232 ali RS-485. Serijske nastavitve nadrejene naprave morajo ustrezati nastavitvam serijskega vmesnika v Neutronu. Naslov podrejene naprave določa MBA; privzeta vrednost je 1.
Za Modbus RTU med komunikacijskimi vmesniki tehtnice izberite Modbus RS-232 ali Modbus RS-485 (parameter SCI).
Vmesnik | Značilna vezava | Pomembno |
|---|---|---|
RS-232 | Povežite TX, RX in GND med Neutronom in nadrejeno napravo Modbus. Glede na vrsto priključkov DTE oziroma DCE bo morda treba križati TX in RX. | Uporabite kratko povezavo od točke do točke in skupno signalno maso. |
RS-485 | Povežite A z A in B z B skladno z oznakami obeh naprav. Kjer to zahteva napeljava, povežite tudi referenčni vodnik oziroma GND. | Uporabite zaporedno povezavo naprav. Ne uporabljajte zvezdaste vezave. Zaključitvena upora namestite samo na fizičnih koncih vodila, kadar sta potrebna. |
Upoštevajte oznake sponk Neutrona in vezalno shemo naprave. Proizvajalci polarnosti RS-485 ne označujejo vedno enako. Če komunikacija ne deluje, preverite polarnost A/B in nastavitve nadrejene naprave.
Navodila uporabljajo običajno referenčno naslavljanje Modbus, na primer 40101. Številni odjemalci uporabljajo začetni naslov od nič. V takem primeru odstranite vodilno številko območja registrov in od preostalega naslova odštejte 1.
Referenčni naslov | Začetni naslov od nič | Primer |
|---|---|---|
| | Register Holding 40001 |
| | Register Holding 40101 |
| | Register Holding 40232 |
| | Register Holding 40380 |
Pred zagonom preverite način naslavljanja nadrejene naprave Modbus. Zamik za en register je pogost vzrok napačne razlage podatkov.
Bruto masa, neto masa in tara so predznačena 32-bitna cela števila, shranjena v dveh zaporednih 16-bitnih registrih.
Najprej se prenese višja beseda (vrstni red registrov big-endian).
Število decimalnih mest je zapisano v konfiguracijskem registru izhodov/statusa, v bitih 14..13.
Registra bruto in neto mase visoke ločljivosti 40109–40112 uporabljata dve dodatni decimalni mesti, kadar je vrednost visoke ločljivosti na voljo.
Primer: če polje decimalnih mest določa dve decimalki, predznačeno 32-bitno število 12345 pomeni 123,45 v aktivni enoti. Enota je na voljo v registru 40113 in je kodirana tudi v konfiguracijskem registru izhodov/statusa.
Funkcija | Ime | Uporaba v Neutronu |
|---|---|---|
| Read Coils — branje izhodnih bitov | Branje stanj digitalnih izhodov; biti 1..6 ustrezajo DO1..DO6. |
| Read Holding Registers — branje registrov Holding | Branje zapisljivih registrov in registrov ukazov. |
| Read Input Registers — branje vhodnih registrov | Branje procesnih podatkov, mas in statusnih registrov. |
| Write Single Coil — zapis enega izhodnega bita | Nastavitev enega digitalnega izhoda, kadar je njegova funkcija izključena. |
| Write Single Register — zapis enega registra | Zapis enega registra Holding, tudi polj ukazov. |
| Write Multiple Coils — zapis več izhodnih bitov | Nastavitev več digitalnih izhodov, kadar so njihove funkcije izključene. |
| Write Multiple Registers — zapis več registrov | Zapis ukaza, parametrov in kalibracijskih podatkov v bloku. |
Zapis na izhode, ki jih krmili nastavljena funkcija, se zavrne. Med takšne izhode sodijo izhodi za tolerance in doziranje.
Referenca Input / Holding | Opis | Podatkovni tip / opombe |
|---|---|---|
| Bruto masa | Predznačeni INT32; vrstni red registrov big-endian. |
| Neto masa | Predznačeni INT32; vrstni red registrov big-endian. |
| Status tehtnice | Bitno polje; glejte poglavje 6.3. |
| Status ukaza | Stanje obdelave ukaza. |
| Nastavitev izhodov/statusa | Bitno polje: izhodi, enota in decimalna mesta. |
Osnovna mapa omogoča enostavnim nadrejenim napravam branje neto ali bruto mase in ključnih statusov iz majhnega strnjenega območja registrov.
Register Holding | Opis | Podatkovni tip / opombe |
|---|---|---|
| Bruto masa | Predznačeni INT32. |
| Neto masa | Predznačeni INT32. |
| Tara | Predznačeni INT32. |
| Status tehtnice | Bitno polje; glejte poglavje 6.3. |
| Nastavitev izhodov/statusa | Bitno polje; glejte poglavje 6.3. |
| Bruto masa visoke ločljivosti | Predznačeni INT32; dve dodatni decimalni mesti, kadar sta na voljo. |
| Neto masa visoke ločljivosti | Predznačeni INT32; dve dodatni decimalni mesti, kadar sta na voljo. |
| Enota | 0 = g; 1 = kg; 2 = t; 3 = lb. |
| Bitna maska digitalnih vhodov | Biti 0..5 = DI1..DI6. |
| Bitna maska digitalnih izhodov | Biti 0..5 = DO1..DO6. |
| Bitna maska funkcij izhodov | Nastavljen bit pomeni, da ustrezni izhod krmili funkcija. |
| Točke ADC | Surova vrednost ADC. |
| Milivolti | Signal merilne celice v mV. |
| Status ukaza | Stanje obdelave ukaza. |
| Ukaz | Sem zapišite kodo ukaza. |
| Parameter ukaza 1 | Izbirni parameter za ukaz v registru 40232. |
Bit | Pomen, kadar je bit nastavljen na 1 |
|---|---|
| Neto masa je negativna. |
| Bruto masa je negativna. |
| Masa je stabilna. |
| Podobremenitev. |
| Preobremenitev. |
| Tara je aktivna. |
| Prednastavljena oziroma ročna tara je aktivna. |
| Bruto masa je nič. |
| Digitalni vhod 1 je aktiven. |
| Digitalni vhod 2 je aktiven. |
| Aktivna je napaka tehtnice oziroma ADC. |
Bit oziroma biti | Pomen |
|---|---|
| Stanje digitalnih izhodov: DO1..DO6. |
| Koda aktivne enote: 0 = g; 1 = kg; 2 = t; 3 = lb. |
| Napaka tehtnice oziroma merilne celice. |
| Koda decimalnih mest za standardne vrednosti mase. |
Za branje vseh izhodov uporabite register 40115. Register 40116 določa, katere izhode trenutno krmili aktivna funkcija.
Kodo ukaza zapišite v register Holding 40232. Izbirni parameter zapišite v 40233 pred izdajo ukaza. Status ukaza preberete iz 40231. Koda ukaza 0 ponastavi zaščito pred ponovitvijo in omogoči ponovno izvedbo enakega ukaza.
Koda ukaza | Parameter 40233 | Dejanje |
|---|---|---|
| | Brez ukaza; ponastavitev zaščite pred ponovitvijo. |
| | Ničliranje po preverjanju stabilnosti. |
| | Takojšnje ničliranje. |
| | Tariranje po preverjanju stabilnosti. |
| | Takojšnje tariranje. |
| | Brisanje tare. |
| Bitna maska izhodov | Nastavitev digitalnih izhodov skladno z bitno masko. |
Bližnjica: tudi zapis kode ukaza v register Holding 40001 sproži izvedbo ukaza. Za predvidljivo integracijo uporabite razširjena registra ukazov 40232 in 40233, zlasti kadar je potreben parameter.
Izhodni biti 1..6 ustrezajo DO1..DO6.
Za branje in zapis izhodnih bitov uporabite funkcije 01, 05 in 15.
Izhod lahko prek Modbus spremenite samo, kadar je njegova izhodna funkcija izključena.
Če izhod krmili funkcija toleranc, doziranja ali druga aktivna funkcija, naprava zapis Modbus na ta izhod zavrne.
Primer: za vklop DO1 in DO3 z ukazom 25 zapišite bitno masko 000101 (desetiško 5) v 40233, nato 25 v 40232. Rezultat preverite v registru 40115 ali izhodnih bitih 1..6.
Kalibracija poteka prek registrov Holding. Uspešni kalibracijski podatki se shranijo v pomnilnik flash. Če kalibracija ne uspe, se spremenjeni podatki ne shranijo.
Referenca Holding | Začetni naslov od nič | Opis |
|---|---|---|
| | Bitno polje statusa kalibracije. |
| | Tehtalni kanal. |
| | Število decimalnih mest kalibracijskih mas. |
| | Število veljavnih kalibracijskih točk. |
| | Ničelna točka ADC, predznačeni INT32. |
Bit statusa kalibracije | Pomen |
|---|---|
| Ničelna točka obstaja. |
| Prva kalibracijska točka z bremenom obstaja. |
| Tehtnica ima minimalno veljavno kalibracijo. |
| Aktivna je napaka tehtnice oziroma ADC. |
Točka 1 se začne pri 40310 (začetni naslov od nič: 309). Vsaka kalibracijska točka uporablja osem registrov. Začetni register točke N je 40310 + ((N − 1) × 8).
Odmik znotraj bloka točke | Opis |
|---|---|
| Oznaka veljavnosti: 0 = neveljavno; 1 = veljavno. |
| Kalibracijska masa, predznačeni INT32. |
| Točka ADC, predznačeni INT32. |
| Faktor × 100, predznačeni INT32. |
| Rezervirano. |
Primeri: točka 1 = 40310–40317; točka 2 = 40318–40325; točka 3 = 40326–40333; točka 8 = 40366–40373.
Referenca Holding | Začetni naslov od nič | Opis |
|---|---|---|
| | Ukaz. |
| | Številka točke. |
| | Kalibracijska masa, predznačeni INT32. |
| | Zastavice. |
| | Sprožilec. |
| | Rezultat ukaza. |
| | Zadnji izvedeni ukaz. |
Ukaz | Opis |
|---|---|
| Kalibracija ničle. |
| Kalibracija točke z bremenom. |
| Brisanje kalibracijske točke. |
| Brisanje ničelne točke. |
| Brisanje celotne kalibracije. |
| Ponovno nalaganje oziroma inicializacija tehtnice. |
Register zastavic 40384: bit 0 določa zahtevo po stabilnosti. Vrednost 0 sproži takojšnjo izvedbo, vrednost 1 pa zahteva stabilno povprečje ADC. Vsi drugi biti so rezervirani.
Rezultat 40386 | Pomen |
|---|---|
| V redu. |
| Napačen ukaz. |
| Napačni podatki. |
| Ni dovoljeno. |
| Nepodprt ukaz. |
| Kalibracija ni uspela. |
Programska oprema izvede kalibracijo samo, ko register sprožilca 40385 preide na neničelno vrednost. Za vsak kalibracijski ukaz uporabite naslednje zaporedje:
Zapišite ukaz in vse zahtevane parametre.
Za izvedbo operacije zapišite 40385 = 1.
Počakajte na konec ukaza in preberite 40386.
Za ponastavitev sprožilca zapišite 40385 = 0.
Za naslednji ukaz zapišite parametre in znova nastavite 40385 na 1.
Ukaz | Kalibracija ničle |
|---|---|
Namen | Write Multiple Registers z začetnim naslovom od nič 379. |
Odgovori | |
| Ukaz: kalibracija ničle. |
| Številka točke se ne uporablja. |
| Kalibracijska masa se ne uporablja. |
| Zahtevano je stabilno povprečje ADC. |
| Sprožitev operacije. |
Preberite 40386 | Pričakovani rezultat: 0 (v redu). |
Ukaz | Kalibracija točke 1 z maso 10,000 kg |
|---|---|
Namen | Pri 40302 = 3 kalibracijsko maso pomnožite s 1000. |
Odgovori | |
| Ukaz: kalibracija točke z bremenom. |
| Točka številka 1. |
| 10,000 kg × 1000. |
| Zahtevano je stabilno povprečje ADC. |
| Sprožitev operacije. |
Preberite 40386 | Pričakovani rezultat: 0 (v redu). |
Ukaz | Brisanje točke 1 |
|---|---|
Namen | Odstranitev prve kalibracijske točke. |
Odgovori | |
| Ukaz: brisanje kalibracijske točke. |
| Točka številka 1. |
| Sprožitev operacije. |
Ukaz | Brisanje celotne kalibracije |
|---|---|
Namen | Odstranitev vseh shranjenih kalibracijskih podatkov. |
Odgovori | |
| Ukaz: brisanje celotne kalibracije. |
| Sprožitev operacije. |
Nastavite SCI za zahtevano kombinacijo vmesnikov in MBA na želeni naslov podrejene naprave Modbus oziroma Unit ID.
Za Modbus TCP preverite naslov IP in uporabite vrata TCP 502. Za Modbus RTU uskladite serijske nastavitve in preverite vezavo.
Za preverjanje naslavljanja preberite znani register, na primer 40113 (enota) ali 40107 (status tehtnice).
Preberite 40101–40106 ter dekodirajte predznačene 32-bitne vrednosti bruto mase, neto mase in tare skladno s sporočenim številom decimalnih mest.
Pred omogočanjem krmilnih funkcij preverite status tehtnice ter digitalne vhode in izhode.
Registre ukazov in kalibracijske funkcije uporabljajte šele po preverjanju, da sta aktivna pravi tehtalni kanal in ustrezno stanje aplikacije.
Simptom | Verjetni vzrok | Dejanje |
|---|---|---|
Ni odgovora Modbus | Komunikacijski vmesnik tehtnice (SCI) ni nastavljen za izbrani vmesnik; napačen IP, vrata ali serijske nastavitve; napačna vezava. | Preverite SCI, vrata TCP 502, MBA, dosegljivost omrežja, serijske parametre in fizično vezavo. |
Vrednosti so zamaknjene ali neveljavne | Odjemalec napačno pretvori referenčni naslov v naslov od nič ali napačno dekodira vrstni red 32-bitnih besed. | Preverite način naslavljanja odjemalca in uporabite predznačeni INT32 z vrstnim redom registrov big-endian. |
Masa ima napačno število decimalnih mest | Odjemalec ne upošteva nastavitve decimalnih mest ali zapisa visoke ločljivosti. | Preberite 40108 in upoštevajte bite 14..13. Registre visoke ločljivosti uporabite, kadar jih potrebujete. |
Zapis na izhod ni mogoč | Izhod krmili dodeljena funkcija. | Pred krmiljenjem izhoda prek Modbus preberite 40116 in izključite ustrezno izhodno funkcijo. |
Enak ukaz se ne izvede znova | Zaščita pred ponovitvijo ni ponastavljena. | V 40232 zapišite ukaz 0, nato znova pošljite želeni ukaz. |
Kalibracijski ukaz nima učinka | Sprožilec ni prešel na neničelno vrednost ali po prejšnjem ukazu ni bil ponastavljen. | Nastavite vse parametre, spremenite 40385 na 1, preberite 40386 in nato 40385 vrnite na 0. |
Varnost: kalibracija, ničliranje, tariranje in krmiljenje izhodov lahko vplivajo na rezultat tehtanja ter povezane stroje. Omejite dostop, preverjajte ukaze v nadrejeni aplikaciji in poskrbite, da so operacije skladne z veljavnimi meroslovnimi zahtevami ter zahtevami za varnost strojev.
Poglavje opisuje osnovni vmesnik CHECKWEIGHER, različico mape registrov 1. Omogoča branje statusa procesa in zadnjega dokončanega rezultata, izbiro obstoječe recepture, nastavitev samodejnega zagona ter ukaze START / STOP / STOP NOW / RESET. Urejanje receptur, nastavitev filtrov, izbira aplikacije, dodelitev I/O in podroben diagnostični tok niso vključeni. Pred uporabo bloka jih uredite v običajnem nastavitvenem vmesniku.
Mapa je enaka pri Modbus TCP in omogočenih vmesnikih Modbus RTU. Uporabite enega krmilnega odjemalca oziroma nadrejeno napravo; dodatni odjemalci lahko podatke samo spremljajo. Vsi načini prenosa si delijo en predal ukazov, ne ločenega predala za vsakega odjemalca. Ne uporabljajte oddajnih zahtev broadcast. Pred krmiljenjem preberite blok in preverite application=4 (CHECKWEIGHER), kanal ter veljavnost posnetka.
Spodnji naslovi so naslovi PDU od nič. Za zapis 4xxxx velja: referenca = 40001 + naslov. Naslov 400 je torej 40401, naslov 480 pa 40481. Za branje uporabite funkcijo 03 ali 04. Ukaze zapisujte samo s funkcijo 16 (0x10), od naslova 480 in z natanko osmimi registri. Funkcija 06 in delni zapisi se zavrnejo. Registri rezultatov in statusov so samo za branje. Presledka med bralnim in zapisovalnim blokom ni mogoče brati.
Za status, potrditev ukaza in zadnji rezultat v eni zahtevi preberite 48 registrov od naslova 400. Ločeno lahko preberete 400/24 za status ali 424/24 za rezultat. Pri vseh 32-bitnih vrednostih je najprej višja beseda, znotraj registra pa višji bajt, skladno z Modbus. 32-bitne vrednosti ne razdelite med ločeni zahtevi.
PDU / referenca | Besede | Ime / tip | Opis |
|---|---|---|---|
| | MAP_VERSION / UINT16 | Za to mapo je vrednost 1. |
| | BOOT_ID / UINT32 | Neničelni naključni žeton seje, ustvarjen ob zagonu naprave. Vključite ga v vsak zapis; po ponovnem zagonu se ne ohrani. Ni varnostno geslo. |
| | CHANNEL / UINT16 | Trenutni tehtalni kanal. |
| | APPLICATION / UINT16 | Za krmiljenje mora biti vrednost 4. |
| | STATE / UINT16 | 0 IDLE — mirovanje; 1 START_CHECK — preverjanje zagona; 2 RUN — delovanje; 3 DRAINING — praznjenje; 4 PAUSED — premor; 5 STOPPED — ustavljeno; 6 ERROR — napaka; 7 CONS_LOST — izgubljen CONS. |
| | ACTIVE_ID / UINT16 | Izbrana receptura; lahko se razlikuje od RESULT_ID prejšnjega izdelka. |
| | AUTOSTART / UINT16 | Trajna nastavitev CWAUTO: 0 izključeno, 1 vključeno. |
| | PROCESS_ERROR / UINT16 | Trenutna procesna napaka, ki preprečuje delovanje; 0 pomeni brez napake. |
| | BELT / UINT16 | Logična zahteva za tek traku, 0/1; ni povratna informacija motorja. |
| | CONS / INT16 | −1 (0xFFFF) ni dodeljen; 0 neaktiven; 1 aktiven. |
| | PQ / UINT16 | Izdelki v čakalni vrsti. |
| | EQ / UINT16 | Čakajoči oziroma aktivni izhodni dogodki. |
| | AUTO_STATE / UINT16 | Izid samodejnega zagona; glejte 10.5. |
| | AUTO_ERROR / UINT16 | Napaka samodejnega zagona ob vklopu; 0 pomeni brez napake. |
| | SNAPSHOT_VALID / UINT16 | 1 veljaven posnetek; 0 ni na voljo. Pred krmiljenjem preverite tudi APPLICATION. |
| | REQUEST_ID / UINT32 | Zadnja sprejeta zahteva; spremeni se takoj ob sprejemu. |
| | ACK_ID / UINT32 | Zadnja dokončana zahteva. 0 pomeni, da od zagona ni bila dokončana nobena. |
| | COMMAND_STATE / UINT16 | 0 IDLE — mirovanje; 1 BUSY — obdelava; 2 DONE — končano; 3 ERROR — napaka. |
| | COMMAND_ERROR / UINT16 | Napaka aplikacije pri dokončani zahtevi; glejte 10.4. |
| | APPLIED_MASK / UINT16 | Bit 0: izbira recepture je uveljavljena; bit 1: samodejni zagon je uveljavljen. Vrednost je lahko neničelna tudi ob neuspelem START. |
| | LAST_COMMAND / UINT16 | Koda ukaza zadnje sprejete zahteve. |
| | RESULT_SEQ / UINT32 | Zaporedna številka zadnjega dokončanega izdelka; primerjajte jo skupaj z BOOT_ID. |
| | RESULT_ID / UINT16 | Receptura, uporabljena za ta rezultat. |
| | RESULT_FLAGS / UINT16 | Bit 0: rezultat obstaja; bit 1: masa je veljavna in predstavljiva; bit 2: meji sta predstavljivi; bit 3: prekoračitev ali neveljavna številska pretvorba. |
| | DECIMALS / UINT16 | Decimalna mesta za W, LO in HI tega rezultata. |
| | UNIT / UINT16 | 0 g; 1 kg; 2 t; 3 lb; 4 oz; 5 N; 65535 druga/neznana enota. Pri neznani enoti ne predpostavite gramov. |
| | W / INT32 | Neto masa z upoštevanjem tare; delite z 10^DECIMALS. Uporabite samo, kadar je nastavljen bit 1 v RESULT_FLAGS. |
| | LO / INT32 | Spodnja tolerančna meja; uporabite samo ob nastavljenem bitu 2 zastavic. |
| | HI / INT32 | Zgornja tolerančna meja; uporabite samo ob nastavljenem bitu 2 zastavic. |
| | WS / UINT16 | Razvrstitev mase: 0 LOW — prenizka; 1 OK — ustrezna; 2 HIGH — previsoka; 3 ERROR — napaka. |
| | LTS / UINT16 | Dolžina: 0 OK — ustrezna; 1 LENGTH_LOW — prekratka; 2 LENGTH_HIGH — predolga; 3 DISABLED — izključeno. |
| | RESULT / UINT16 | 0 LOW — prenizka masa; 1 OK — ustrezno; 2 HIGH — previsoka masa; 3 ERROR — napaka; 4 OVERLAP — prekrivanje; 5 ABORTED — prekinjeno; 6 ABORTED_CONS — prekinjeno zaradi CONS. |
| | PRODUCT_ERROR / UINT16 | Napaka tega izdelka; ločena od PROCESS_ERROR. |
| | NS / UINT16 | Sprejeti vzorci zadnjega dokončanega rezultata pred obrezovanjem vzorca; ne število vzorcev trenutnega izdelka. |
| | TD / UINT32 | Čas zaznave v milisekundah od zagona; po približno 49,7 dneva se števec obrne. |
| | ET / UINT32 | Milisekunde od zaznave do rezultata. |
| | LT / UINT32 | Čas vklopa senzorja izdelka v milisekundah; 0 v načinu proženja z maso. |
| | RESERVED / UINT16 | 0; pri različici 1 prezrite. |
Status in zadnji rezultat se kopirata pod zaklepom procesa. Vsak odgovor vsebuje skladen posnetek; naslednja zahteva lahko vrne novejše podatke. RESULT_SEQ, RESULT_ID, DECIMALS in UNIT pripadajo shranjenemu rezultatu, ne trenutno izbrani recepturi. Pred prvim rezultatom je bit 0 zastavic izključen: ničelnih polj ne razlagajte kot dejanski izdelek z maso nič. Branje rezultata nikoli ne porabi ali izbriše.
Primer: W high=0x0000 in low=0x07D1 sestavita predznačeno celo število 2001. Pri DECIMALS=1 in UNIT=0 je masa 200,1 g. Negativne vrednosti uporabljajo 32-bitni dvojiški komplement. Če pretvorba preseže INT32 ali vrednosti tehtnice ni mogoče predstaviti, se ustrezni bit veljavnosti izključi, številski registri so nič in bit 3 zastavic se vključi. Izvirni rezultat izdelka ostane nespremenjen.
Naslov / referenca | Ime | Vrednost |
|---|---|---|
| | 0 samo nastavitve; 1 START — zagon; 2 STOP DRAIN — ustavitev s praznjenjem; 3 STOP NOW — takojšnja ustavitev; 4 RESET — ponastavitev. |
| CHANGE_MASK | Bit 0: izbira RECIPE_ID. Bit 1: nastavitev AUTOSTART. Drugi biti morajo biti 0. |
| RECIPE_ID | 1–500, kadar je nastavljen bit 0 maske. Sicer zapišite 0. Receptura mora že obstajati. |
| | 0 ali 1, kadar je nastavljen bit 1 maske. Sicer zapišite 0. |
| REQUEST_ID | |
| BOOT_ID | |
Pri COMMAND 2, 3 ali 4 morajo biti CHANGE_MASK, RECIPE_ID in AUTOSTART vsi 0. Nastavitve lahko združite s COMMAND 0 ali 1. Izbira recepture in sprememba samodejnega zagona zahtevata ustavljen in izpraznjen proces. START brez bita za spremembo recepture zažene trenutno izbrano recepturo. Izbira aplikacije in ustvarjanje receptur nista del tega vmesnika Modbus.
Pred sprejemom se preveri celoten okvir. Delni zapisi krmilnega bloka nimajo učinka. Običajni odgovor funkcije 16 pomeni, da je bila zahteva sprejeta v predal, ne da je START uspel. Izvedba poteka v obstoječi glavni zanki. Berite stanje, dokler se ACK_ID ne ujema s poslano številko in COMMAND_STATE ni DONE ali ERROR. Stanje BUSY je lahko prekratko, da bi ga zaznali; zaznava BUSY ne sme biti pogoj za sprejem DONE.
Hkrati naj bo odprta samo ena zahteva. Ob prekoračitvi časa zapisa znova preberite BOOT_ID, REQUEST_ID in ACK_ID. Če se zagonski žeton ni spremenil, po potrebi ponovno pošljite natanko istih osem besed. Ponovitev zadnje sprejete zahteve z enakimi podatki se potrdi brez ponovne izvedbe, tako med čakanjem kot po dokončanju. Enak ID s spremenjenimi podatki, preskočeni ali stari ID-ji, drug zagonski žeton in nova zahteva med BUSY se zavrnejo. Po ponovnem zagonu se uskladite z novim žetonom in trenutnim stanjem procesa; starega START ne ponavljajte samodejno.
Za zaznavanje podvojenih zahtev se ohrani samo zadnja zahteva; trajnega dnevnika ukazov ni. Ponovni zagon omrežja brez ponovnega zagona naprave predala ne izbriše. Protokol predvideva en krmilni PLC in ne razrešuje sporov med več zapisovalci. Zagonski žeton in števec zahtev preprečujeta nenamerne ponovitve, ne nepooblaščenega dostopa.
Najprej se uveljavi izbira recepture, nato samodejni zagon in nazadnje ukaz. Pred spremembo nastavitev se preverijo sintaksa, območje ID-ja in veljavnost recepture. Napaka pomnilnika flash lahko kljub temu pusti predhodno nastavitev uveljavljeno. APPLIED_MASK natančno pove, katere zahtevane nastavitve so uspele. Na primer: receptura 25 in AUTOSTART=1 se lahko shranita, START pa se zavrne zaradi neaktivnega CONS: COMMAND_STATE=ERROR, COMMAND_ERROR=11, APPLIED_MASK=3. Nastavitve se ne povrnejo. Pred odločitvijo o ponovitvi preberite ACTIVE_ID in AUTOSTART.
Spodnje kode pripadajo COMMAND_ERROR in jih ne smete zamenjati s polji napak procesa ali izdelka. Zapis, zavrnjen na ravni prenosa, ne spremeni predala ali ACK_ID. Nedovoljeni naslovi, zapis na registre samo za branje, delni zapisi in nepodprta območja blokov vrnejo izjemo Modbus 02. Pravilno naslovljen zapis osmih besed z neveljavnimi podatki, žetonom, zaporedjem ali stanjem predala vrne izjemo 03.
Koda | Pomen |
|---|---|
| Uspešno. |
| Izbrana receptura manjka ali ni veljavna. |
| START zavrnjen: masa je zunaj dovoljenega območja. |
| Zahtevani pomnilnik ni na voljo. |
| Nastavljeni CONS je neaktiven. |
| Enota recepture ne ustreza tehtnici. |
| Nastavitev ali stanje senzorja preprečuje operacijo. |
| Napačna aplikacija, proces v teku, neodpravljena napaka ali sočasna operacija tehtnice. |
| Neveljavni argumenti zahteve ali merilni sistem še ni pripravljen. |
| Napaka pri branju ali zapisu nastavitev oziroma podatkovne baze. |
STOP DRAIN ne sprejema novih izdelkov ter dokonča že sprejete izdelke in izhodne dogodke. Njegova potrditev DONE pomeni, da je bila ustavitev zahtevana; STATE=5 potrdi zaključek. STOP NOW prekine odprte izdelke in dogodke ter izključi procesne izhode. Pri napaki, ki preprečuje delovanje, STOP ne nadomesti RESET. RESET znova preveri tehtnico in predpogoje, traku pa ne zažene; če vzrok ostaja, ukaz ne uspe. Vsi ukazi upoštevajo običajne blokade kontrolne tehtnice. Rezultat pomeni izid meritve, ne potrditve, da je fizični izločevalnik dejansko deloval.
AUTOSTART je trajna nastavitev CWAUTO, privzeto 0. Vklop ne sproži takojšnjega zagona; za takojšnji START jo združite s COMMAND=1. Ob naslednjem zagonu naprave mora biti izbrana aplikacija CHECKWEIGHER, začetno ničliranje omogočeno in uspešno ter na voljo veljavna zadnja aktivna trajna receptura. Še vedno veljajo običajna preverjanja START. Neuspešen poskus ob zagonu se ne ponovi, ko se pozneje spremeni vhod. Ročni STOP, PAUSE in napake ne sprožijo samodejnega ponovnega zagona. Nespremenjene vrednosti ne povzročijo novega zapisa nastavitev.
AUTO_STATE: 0 DISABLED — izključeno; 1 WAIT_ZERO — čakanje na ničlo; 2 ZERO_DISABLED — ničliranje izključeno; 3 ZERO_FAILED — ničliranje neuspešno; 4 NO_PRODUCT — ni recepture; 5 STARTED — zagnano; 6 START_FAILED — zagon neuspešen; 7 CANCELLED — preklicano; 8 INACTIVE — neaktivno; 9 INIT_FAILED — inicializacija neuspešna. AUTO_ERROR je koda zavrnjenega START ob zagonu. To je izid zagonskega poskusa; STATE in PROCESS_ERROR opisujeta trenutni proces.
Primer 1 — branje vseh podatkov: funkcija 03, začetni PDU=400, število=48 (referenca 40401). Preverite MAP_VERSION=1, APPLICATION=4 in SNAPSHOT_VALID=1. Shranite BOOT_ID in ACK_ID. Za branje podatkov ukaz ni potreben.
Primer 2 — z enim zapisom izberite recepturo 25, omogočite samodejni zagon in sprožite START. Predpostavimo BOOT_ID=0x12345678 in ACK_ID=0. Uporabite funkcijo 16, začetni PDU=480, število=8 ter desetiške besede [1, 3, 25, 1, 0, 1, 4660, 22136]. Zagonski besedi sta primer: vedno ju preberite iz naprave. Počakajte na ACK_ID=1 in COMMAND_STATE=2, nato preverite STATE=2 (RUN). Pri COMMAND_STATE=3 preverite COMMAND_ERROR in APPLIED_MASK.
Primer 3 — STOP DRAIN. Če je prejšnja zahteva dokončana, pošljite [2, 0, 0, 0, 0, 2, 4660, 22136]. Počakajte na ACK_ID=2. DONE potrdi sprejem; nadaljujte branje do STATE=5 (STOPPED). Med DRAINING lahko čakajoči izdelki še ustvarjajo rezultate.
Primer 4 — po ustavitvi spremenite samo recepturo: [0, 1, 26, 0, 0, 3, 4660, 22136]. Samodejni zagon ostane nespremenjen, proces se ne zažene. Pozneje ga zaženite z [1, 0, 0, 0, 0, 4, 4660, 22136].
Primer 5 — ponastavitev po odpravi napake: COMMAND=4, mask/recipe/autostart=0, naslednji ID zahteve in trenutni BOOT_ID. Počakajte na uspešno potrditev; po potrebi nato ločeno pošljite START. RESET ne pošiljajte večkrat zapored brez ugotavljanja vzroka napake.
Predlagana ciklična logika PLC (psevdokoda Structured Text; imena blokov Modbus prilagodite svojemu PLC-ju):
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;
(* Ponovno uskladite ukaze; starega START ne ponavljajte. *)
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];
(* Ta posnetek obdelajte enkrat, tudi za neveljavne ali izločene izdelke. *)
END_IF;
END_IF;NS se nanaša na zadnji dokončani izdelek in ostane nespremenjen do novega rezultata. Blok zadnjega rezultata ni čakalna vrsta: če se med dvema branjem dokončata dva izdelka, vmesnega rezultata prek osnovne mape ni mogoče pridobiti. Spremljajte spremembe SEQ in izberite interval branja, krajši od najkrajšega razmika med izdelki. Po ponovni povezavi določite, ali se prvi razpoložljivi rezultat zabeleži kot obnovljeni posnetek ali uporabi le kot začetno izhodišče. Vmesnik ne zagotavlja revizijske sledi za vsak izdelek.
Preverite oba načina naslavljanja, vrstni red besed ter znane pozitivne in negativne mase. Preberite vseh 48 besed in oba podbloka po 24 besed.
Pred prvim izdelkom preverite zastavice brez rezultata, nato ustrezen izdelek (OK), prelahek izdelek (LOW) in neveljaven izdelek. Preverite, da ID in enota ostaneta vezana na shranjeni rezultat tudi po spremembi recepture.
Enak sprejeti zapis ponovite pred dokončanjem in po njem: izvesti se mora samo enkrat. Poskusite spremenjene podatke z enakim ID-jem, preskočeni ID, delni zapis in zapis na register samo za branje. Vsak se mora zavrniti brez spremembe že sprejetih nastavitev.
Preizkusite START z neaktivnim CONS in preberite APPLIED_MASK. Preizkusite STOP DRAIN do STOPPED, STOP NOW, RESET napake in poznejši START.
Prekinite in obnovite povezavo ter znova zaženite napravo. Preverite ponovno uskladitev zahtev in zavrnitev starega zagonskega žetona. Preizkusite vključen in izključen samodejni zagon z uspešnim ter neuspešnim začetnim ničliranjem.
Preizkuse ponovite na dejanskem PLC-ju in obeh nastavljenih načinih TCP/RTU. Preverite, da ciklična komunikacija ne ovira tehtanja ali časovnega poteka izhodov.
Tabele uporabljajo oznake registrov 4xxxx z začetkom pri 1. Za register 40101 je naslov PDU z začetkom pri 0 enak 100. Uporabite način naslavljanja svojega odjemalca Modbus.
Bruto in neto masa visoke ločljivosti v registrih 40109–40112 uporabljata dve dodatni decimalni mesti, kadar sta na voljo. Dekodirajte ju kot predznačeni 32-bitni vrednosti in upoštevajte nastavitev decimalnih mest.
Ne. Vsebuje zadnji zaključen rezultat izdelka, ki ostane nespremenjen do naslednjega rezultata. Spremljajte SEQ in izberite interval branja, krajši od najkrajšega intervala med izdelki. Vmesnih rezultatov prek tega osnovnega nabora registrov ni mogoče pridobiti.
Ob spremembi BOOT_ID znova uskladite obravnavo ukazov. Preberite trenutna BOOT_ID in ACK_ID, ne ponavljajte starega START ter upoštevajte zaporedje in preverjanja ukaznega predala iz primerov PLC.
Referenčni priročnik CSCP za Neutron: zgradba sporočil, tehtanje, konfiguracija, štetje, kontrolno tehtanje ter digitalni vhodi in izhodi.
Integracija Neutrona prek OPC UA: varna povezava, sprotni tehtalni podatki, stabilni zajem ter povezovanje s PLC in SCADA.