TEHTALNA TEHNIKA · LASTEN RAZVOJ · PODPORA
+386 2 320 33 46info@preciz.si
PRECIZTehnika tehtanja.
Povezana z vašim procesom.

NEUTRON · KOMUNIKACIJSKI PROTOKOL

Neutron Modbus RTU/TCP – navodila za integracijo

Referenčna navodila Neutron Modbus RTU/TCP za integracijo s PLC, SCADA in HMI: povezava, naslavljanje, registri, kalibracija in krmiljenje avtomatske kontrolne tehtnice.

1. Različice navodil

Modbus
Tabela 1

Različica

Datum

Opis spremembe

1.0

Junij 2026

Prva izdaja navodil za Neutron Modbus.

2. Pregled

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.

3. Povezava in aktiviranje

3.1 Modbus TCP

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.

Tabela 2

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.

MBA

Nastavi naslov podrejene naprave Modbus oziroma Unit ID. Privzeto: 1.

Vrata TCP

502

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.

3.2 Primer povezave TCP

Tabela 3

Postavka

Primer

Nadrejena naprava Modbus

PLC, SCADA, HMI or industrial PC

Prenos

Ethernet ali Wi-Fi TCP/IP

Ciljni naslov

Naslov IP Neutrona

Vrata storitve

502

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.

3.3 Modbus RTU (RS-232/RS-485)

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).

Tabela 4

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.

4. Naslavljanje in zapis podatkov

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.

Tabela 5

Referenčni naslov

Začetni naslov od nič

Primer

40001
0

Register Holding 40001

40101
100

Register Holding 40101

40232
231

Register Holding 40232

40380
379

Register Holding 40380

Pred zagonom preverite način naslavljanja nadrejene naprave Modbus. Zamik za en register je pogost vzrok napačne razlage podatkov.

4.1 Zapis mase

  • 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.

5. Podprte funkcije Modbus

Tabela 6

Funkcija

Ime

Uporaba v Neutronu

01

Read Coils — branje izhodnih bitov

Branje stanj digitalnih izhodov; biti 1..6 ustrezajo DO1..DO6.

03

Read Holding Registers — branje registrov Holding

Branje zapisljivih registrov in registrov ukazov.

04

Read Input Registers — branje vhodnih registrov

Branje procesnih podatkov, mas in statusnih registrov.

05

Write Single Coil — zapis enega izhodnega bita

Nastavitev enega digitalnega izhoda, kadar je njegova funkcija izključena.

06

Write Single Register — zapis enega registra

Zapis enega registra Holding, tudi polj ukazov.

15

Write Multiple Coils — zapis več izhodnih bitov

Nastavitev več digitalnih izhodov, kadar so njihove funkcije izključene.

16

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.

6. Mapa procesnih registrov

6.1 Osnovni procesni registri

Tabela 7

Referenca Input / Holding

Opis

Podatkovni tip / opombe

30001-30002 / 40001-40002

Bruto masa

Predznačeni INT32; vrstni red registrov big-endian.

30003-30004 / 40003-40004

Neto masa

Predznačeni INT32; vrstni red registrov big-endian.

30005 / 40005

Status tehtnice

Bitno polje; glejte poglavje 6.3.

30006 / 40006

Status ukaza

Stanje obdelave ukaza.

30007 / 40007

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.

6.2 Razširjeni procesni registri

Tabela 8

Register Holding

Opis

Podatkovni tip / opombe

40101-40102

Bruto masa

Predznačeni INT32.

40103-40104

Neto masa

Predznačeni INT32.

40105-40106

Tara

Predznačeni INT32.

40107

Status tehtnice

Bitno polje; glejte poglavje 6.3.

40108

Nastavitev izhodov/statusa

Bitno polje; glejte poglavje 6.3.

40109-40110

Bruto masa visoke ločljivosti

Predznačeni INT32; dve dodatni decimalni mesti, kadar sta na voljo.

40111-40112

Neto masa visoke ločljivosti

Predznačeni INT32; dve dodatni decimalni mesti, kadar sta na voljo.

40113

Enota

0 = g; 1 = kg; 2 = t; 3 = lb.

40114

Bitna maska digitalnih vhodov

Biti 0..5 = DI1..DI6.

40115

Bitna maska digitalnih izhodov

Biti 0..5 = DO1..DO6.

40116

Bitna maska funkcij izhodov

Nastavljen bit pomeni, da ustrezni izhod krmili funkcija.

40117

Točke ADC

Surova vrednost ADC.

40119

Milivolti

Signal merilne celice v mV.

40231

Status ukaza

Stanje obdelave ukaza.

40232

Ukaz

Sem zapišite kodo ukaza.

40233

Parameter ukaza 1

Izbirni parameter za ukaz v registru 40232.

6.3 Bitna polja statusov in nastavitev

6.3.1 Statusni register tehtnice (30005 / 40005 / 40107)

Tabela 9

Bit

Pomen, kadar je bit nastavljen na 1

0

Neto masa je negativna.

1

Bruto masa je negativna.

2

Masa je stabilna.

3

Podobremenitev.

4

Preobremenitev.

5

Tara je aktivna.

6

Prednastavljena oziroma ročna tara je aktivna.

7

Bruto masa je nič.

8

Digitalni vhod 1 je aktiven.

9

Digitalni vhod 2 je aktiven.

10

Aktivna je napaka tehtnice oziroma ADC.

6.3.2 Konfiguracijski register izhodov/statusa (30007 / 40007 / 40108)

Tabela 10

Bit oziroma biti

Pomen

0..5

Stanje digitalnih izhodov: DO1..DO6.

6..7

Koda aktivne enote: 0 = g; 1 = kg; 2 = t; 3 = lb.

8

Napaka tehtnice oziroma merilne celice.

13..14

Koda decimalnih mest za standardne vrednosti mase.

Za branje vseh izhodov uporabite register 40115. Register 40116 določa, katere izhode trenutno krmili aktivna funkcija.

7. Ukazi in digitalni izhodi

7.1 Uporaba registra ukazov

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.

Tabela 11

Koda ukaza

Parameter 40233

Dejanje

0
-

Brez ukaza; ponastavitev zaščite pred ponovitvijo.

1
0

Ničliranje po preverjanju stabilnosti.

1
1

Takojšnje ničliranje.

2
0

Tariranje po preverjanju stabilnosti.

2
1

Takojšnje tariranje.

3
-

Brisanje tare.

25

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.

7.2 Digitalni izhodi

  • 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.

8. Kalibracijski vmesnik

Kalibracija poteka prek registrov Holding. Uspešni kalibracijski podatki se shranijo v pomnilnik flash. Če kalibracija ne uspe, se spremenjeni podatki ne shranijo.

8.1 Kalibracijski podatki

Tabela 12

Referenca Holding

Začetni naslov od nič

Opis

40300
299

Bitno polje statusa kalibracije.

40301
300

Tehtalni kanal.

40302
301

Število decimalnih mest kalibracijskih mas.

40303
302

Število veljavnih kalibracijskih točk.

40304-40305
303

Ničelna točka ADC, predznačeni INT32.

Tabela 13

Bit statusa kalibracije

Pomen

0

Ničelna točka obstaja.

1

Prva kalibracijska točka z bremenom obstaja.

2

Tehtnica ima minimalno veljavno kalibracijo.

8

Aktivna je napaka tehtnice oziroma ADC.

8.2 Bloki kalibracijskih točk

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).

Tabela 14

Odmik znotraj bloka točke

Opis

+0

Oznaka veljavnosti: 0 = neveljavno; 1 = veljavno.

+1..+2

Kalibracijska masa, predznačeni INT32.

+3..+4

Točka ADC, predznačeni INT32.

+5..+6

Faktor × 100, predznačeni INT32.

+7

Rezervirano.

Primeri: točka 1 = 40310–40317; točka 2 = 40318–40325; točka 3 = 40326–40333; točka 8 = 40366–40373.

8.3 Kalibracijski ukazi

Tabela 15

Referenca Holding

Začetni naslov od nič

Opis

40380
379

Ukaz.

40381
380

Številka točke.

40382-40383
381

Kalibracijska masa, predznačeni INT32.

40384
383

Zastavice.

40385
384

Sprožilec.

40386
385

Rezultat ukaza.

40387
386

Zadnji izvedeni ukaz.

Tabela 16

Ukaz

Opis

1

Kalibracija ničle.

2

Kalibracija točke z bremenom.

3

Brisanje kalibracijske točke.

4

Brisanje ničelne točke.

5

Brisanje celotne kalibracije.

6

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.

Tabela 17

Rezultat 40386

Pomen

0

V redu.

1

Napačen ukaz.

2

Napačni podatki.

3

Ni dovoljeno.

4

Nepodprt ukaz.

5

Kalibracija ni uspela.

8.4 Zaporedje proženja

Programska oprema izvede kalibracijo samo, ko register sprožilca 40385 preide na neničelno vrednost. Za vsak kalibracijski ukaz uporabite naslednje zaporedje:

  1. Zapišite ukaz in vse zahtevane parametre.

  2. Za izvedbo operacije zapišite 40385 = 1.

  3. Počakajte na konec ukaza in preberite 40386.

  4. Za ponastavitev sprožilca zapišite 40385 = 0.

  5. Za naslednji ukaz zapišite parametre in znova nastavite 40385 na 1.

8.5 Primeri

Tabela 18

Ukaz

Kalibracija ničle

Namen

Write Multiple Registers z začetnim naslovom od nič 379.

Odgovori

40380 = 1

Ukaz: kalibracija ničle.

40381 = 0

Številka točke se ne uporablja.

40382 = 0; 40383 = 0

Kalibracijska masa se ne uporablja.

40384 = 1

Zahtevano je stabilno povprečje ADC.

40385 = 1

Sprožitev operacije.

Preberite 40386

Pričakovani rezultat: 0 (v redu).

Tabela 19

Ukaz

Kalibracija točke 1 z maso 10,000 kg

Namen

Pri 40302 = 3 kalibracijsko maso pomnožite s 1000.

Odgovori

40380 = 2

Ukaz: kalibracija točke z bremenom.

40381 = 1

Točka številka 1.

40382-40383 = 10000

10,000 kg × 1000.

40384 = 1

Zahtevano je stabilno povprečje ADC.

40385 = 1

Sprožitev operacije.

Preberite 40386

Pričakovani rezultat: 0 (v redu).

Tabela 20

Ukaz

Brisanje točke 1

Namen

Odstranitev prve kalibracijske točke.

Odgovori

40380 = 3

Ukaz: brisanje kalibracijske točke.

40381 = 1

Točka številka 1.

40385 = 1

Sprožitev operacije.

Tabela 21

Ukaz

Brisanje celotne kalibracije

Namen

Odstranitev vseh shranjenih kalibracijskih podatkov.

Odgovori

40380 = 5

Ukaz: brisanje celotne kalibracije.

40385 = 1

Sprožitev operacije.

9. Zagon in odpravljanje težav

  1. Nastavite SCI za zahtevano kombinacijo vmesnikov in MBA na želeni naslov podrejene naprave Modbus oziroma Unit ID.

  2. Za Modbus TCP preverite naslov IP in uporabite vrata TCP 502. Za Modbus RTU uskladite serijske nastavitve in preverite vezavo.

  3. Za preverjanje naslavljanja preberite znani register, na primer 40113 (enota) ali 40107 (status tehtnice).

  4. Preberite 40101–40106 ter dekodirajte predznačene 32-bitne vrednosti bruto mase, neto mase in tare skladno s sporočenim številom decimalnih mest.

  5. Pred omogočanjem krmilnih funkcij preverite status tehtnice ter digitalne vhode in izhode.

  6. Registre ukazov in kalibracijske funkcije uporabljajte šele po preverjanju, da sta aktivna pravi tehtalni kanal in ustrezno stanje aplikacije.

9.2 Pogoste težave

Tabela 22

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.

10. Avtomatska kontrolna tehtnica

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.

10.1 Povezava in naslavljanje

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.

10.2 Mapa statusnih registrov in rezultatov

Tabela 23

PDU / referenca

Besede

Ime / tip

Opis

400 / 40401
1

MAP_VERSION / UINT16

Za to mapo je vrednost 1.

401 / 40402
2

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.

403 / 40404
1

CHANNEL / UINT16

Trenutni tehtalni kanal.

404 / 40405
1

APPLICATION / UINT16

Za krmiljenje mora biti vrednost 4.

405 / 40406
1

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.

406 / 40407
1

ACTIVE_ID / UINT16

Izbrana receptura; lahko se razlikuje od RESULT_ID prejšnjega izdelka.

407 / 40408
1

AUTOSTART / UINT16

Trajna nastavitev CWAUTO: 0 izključeno, 1 vključeno.

408 / 40409
1

PROCESS_ERROR / UINT16

Trenutna procesna napaka, ki preprečuje delovanje; 0 pomeni brez napake.

409 / 40410
1

BELT / UINT16

Logična zahteva za tek traku, 0/1; ni povratna informacija motorja.

410 / 40411
1

CONS / INT16

−1 (0xFFFF) ni dodeljen; 0 neaktiven; 1 aktiven.

411 / 40412
1

PQ / UINT16

Izdelki v čakalni vrsti.

412 / 40413
1

EQ / UINT16

Čakajoči oziroma aktivni izhodni dogodki.

413 / 40414
1

AUTO_STATE / UINT16

Izid samodejnega zagona; glejte 10.5.

414 / 40415
1

AUTO_ERROR / UINT16

Napaka samodejnega zagona ob vklopu; 0 pomeni brez napake.

415 / 40416
1

SNAPSHOT_VALID / UINT16

1 veljaven posnetek; 0 ni na voljo. Pred krmiljenjem preverite tudi APPLICATION.

416 / 40417
2

REQUEST_ID / UINT32

Zadnja sprejeta zahteva; spremeni se takoj ob sprejemu.

418 / 40419
2

ACK_ID / UINT32

Zadnja dokončana zahteva. 0 pomeni, da od zagona ni bila dokončana nobena.

420 / 40421
1

COMMAND_STATE / UINT16

0 IDLE — mirovanje; 1 BUSY — obdelava; 2 DONE — končano; 3 ERROR — napaka.

421 / 40422
1

COMMAND_ERROR / UINT16

Napaka aplikacije pri dokončani zahtevi; glejte 10.4.

422 / 40423
1

APPLIED_MASK / UINT16

Bit 0: izbira recepture je uveljavljena; bit 1: samodejni zagon je uveljavljen. Vrednost je lahko neničelna tudi ob neuspelem START.

423 / 40424
1

LAST_COMMAND / UINT16

Koda ukaza zadnje sprejete zahteve.

424 / 40425
2

RESULT_SEQ / UINT32

Zaporedna številka zadnjega dokončanega izdelka; primerjajte jo skupaj z BOOT_ID.

426 / 40427
1

RESULT_ID / UINT16

Receptura, uporabljena za ta rezultat.

427 / 40428
1

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.

428 / 40429
1

DECIMALS / UINT16

Decimalna mesta za W, LO in HI tega rezultata.

429 / 40430
1

UNIT / UINT16

0 g; 1 kg; 2 t; 3 lb; 4 oz; 5 N; 65535 druga/neznana enota. Pri neznani enoti ne predpostavite gramov.

430 / 40431
2

W / INT32

Neto masa z upoštevanjem tare; delite z 10^DECIMALS. Uporabite samo, kadar je nastavljen bit 1 v RESULT_FLAGS.

432 / 40433
2

LO / INT32

Spodnja tolerančna meja; uporabite samo ob nastavljenem bitu 2 zastavic.

434 / 40435
2

HI / INT32

Zgornja tolerančna meja; uporabite samo ob nastavljenem bitu 2 zastavic.

436 / 40437
1

WS / UINT16

Razvrstitev mase: 0 LOW — prenizka; 1 OK — ustrezna; 2 HIGH — previsoka; 3 ERROR — napaka.

437 / 40438
1

LTS / UINT16

Dolžina: 0 OK — ustrezna; 1 LENGTH_LOW — prekratka; 2 LENGTH_HIGH — predolga; 3 DISABLED — izključeno.

438 / 40439
1

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.

439 / 40440
1

PRODUCT_ERROR / UINT16

Napaka tega izdelka; ločena od PROCESS_ERROR.

440 / 40441
1

NS / UINT16

Sprejeti vzorci zadnjega dokončanega rezultata pred obrezovanjem vzorca; ne število vzorcev trenutnega izdelka.

441 / 40442
2

TD / UINT32

Čas zaznave v milisekundah od zagona; po približno 49,7 dneva se števec obrne.

443 / 40444
2

ET / UINT32

Milisekunde od zaznave do rezultata.

445 / 40446
2

LT / UINT32

Čas vklopa senzorja izdelka v milisekundah; 0 v načinu proženja z maso.

447 / 40448
1

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.

10.3 Krmilni blok z enim zapisom

Tabela 24

Naslov / referenca

Ime

Vrednost

480 / 40481
COMMAND

0 samo nastavitve; 1 START — zagon; 2 STOP DRAIN — ustavitev s praznjenjem; 3 STOP NOW — takojšnja ustavitev; 4 RESET — ponastavitev.

481 / 40482

CHANGE_MASK

Bit 0: izbira RECIPE_ID. Bit 1: nastavitev AUTOSTART. Drugi biti morajo biti 0.

482 / 40483

RECIPE_ID

1–500, kadar je nastavljen bit 0 maske. Sicer zapišite 0. Receptura mora že obstajati.

483 / 40484
AUTOSTART

0 ali 1, kadar je nastavljen bit 1 maske. Sicer zapišite 0.

484–485 / 40485–40486

REQUEST_ID

UINT32, high word first. Next nonzero ID after ACK_ID. First request is 1; after 0xFFFFFFFF use 1.
486–487 / 40487–40488

BOOT_ID

UINT32, high word first. Echo the current token from 401–402.

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.

10.4 Uveljavljene nastavitve, rezultati ukazov in napake

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.

Tabela 25

Koda

Pomen

0

Uspešno.

1

Izbrana receptura manjka ali ni veljavna.

5 / 6

START zavrnjen: masa je zunaj dovoljenega območja.

7

Zahtevani pomnilnik ni na voljo.

11

Nastavljeni CONS je neaktiven.

13

Enota recepture ne ustreza tehtnici.

15

Nastavitev ali stanje senzorja preprečuje operacijo.

16

Napačna aplikacija, proces v teku, neodpravljena napaka ali sočasna operacija tehtnice.

17

Neveljavni argumenti zahteve ali merilni sistem še ni pripravljen.

25

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.

10.5 Samodejni zagon

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.

10.6 Primeri za PLC

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.

10.7 Preverjanja ob zagonu

  1. Preverite oba načina naslavljanja, vrstni red besed ter znane pozitivne in negativne mase. Preberite vseh 48 besed in oba podbloka po 24 besed.

  2. 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.

  3. 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.

  4. Preizkusite START z neaktivnim CONS in preberite APPLIED_MASK. Preizkusite STOP DRAIN do STOPPED, STOP NOW, RESET napake in poznejši START.

  5. 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.

  6. 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.

Pogosta vprašanja

Kako pretvorim oznako registra v naslov PDU?

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.

Koliko dodatnih decimalnih mest ima masa visoke ločljivosti?

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.

Ali je blok rezultatov avtomatske kontrolne tehtnice čakalna vrsta?

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.

Ali PLC po ponovnem zagonu naprave ponovi START?

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.