TECHNIKA WAGOWA · WŁASNY ROZWÓJ · WSPARCIE
+386 2 320 33 46info@preciz.si

NEUTRON · PROTOKÓŁ KOMUNIKACYJNY

Neutron Modbus RTU/TCP — instrukcja integracji

Dokumentacja Neutron Modbus RTU/TCP do integracji z PLC, SCADA i HMI: połączenie, adresowanie, rejestry, kalibracja i sterowanie automatyczną wagą kontrolną.

1. WERSJE INSTRUKCJI

Tabela 1

Wersja

Data

Opis zmiany

1.0

Czerwiec 2026

Pierwsze wydanie instrukcji Neutron Modbus.

2. PRZEGLĄD

CloudScale Neutron NS i Neutron NT udostępniają interfejs Modbus do odczytu danych ważenia, informacji o stanie, cyfrowych I/O i danych kalibracji oraz wykonywania wybranych poleceń wagi. Interfejs jest przeznaczony do integracji z PLC, SCADA, HMI, MES i własnym oprogramowaniem.

Neutron obsługuje następujące warianty transportu Modbus:

  • Modbus RTU przez interfejs RS-232 lub RS-485. Domyślny identyfikator urządzenia podrzędnego / jednostki Modbus to 1.

  • Modbus TCP przez Wi-Fi lub Ethernet. Domyślny port TCP to 502.

Dostępne funkcje i obszary rejestrów tworzą ten sam interfejs logiczny dla Modbus TCP i Modbus RTU, z wyjątkiem tego, że TCP używa Unit Identifier tylko tam, gdzie wymaga go klient lub brama.

Ważne: parametry komunikacji, takie jak ustawienia portu szeregowego i sieci, należy skonfigurować w Neutron przed podłączeniem urządzenia nadrzędnego Modbus. Urządzenie używa adresu Modbus skonfigurowanego parametrem MBA.

3. POŁĄCZENIE I AKTYWACJA

3.1 MODBUS TCP

Modbus TCP jest dostępny przez połączenie sieciowe Neutron. Użyj adresu IP przypisanego do urządzenia i portu TCP 502. Komunikacja TCP nie wymaga konfiguracji linii szeregowej.

Aby korzystać z Modbus TCP, wybierz Modbus TCP w interfejsach komunikacji wagi (parametr SCI). Modbus TCP może działać równocześnie z innymi interfejsami, na przykład nadal można używać RS-232 do komunikacji z komputerem przez protokół CSCP.

Tabela 2

Konfiguracja

Wynik

SCI = 10

Włącza tylko Modbus TCP.

SCI = 5,10

Włącza zwykłą komunikację wagi RS-232 równocześnie z Modbus TCP.

SCI = 6,10

Włącza zwykłą komunikację wagi RS-485 równocześnie z Modbus TCP.

MBA

Ustawia adres urządzenia podrzędnego / jednostki Modbus. Domyślnie: 1.

Port TCP

502

Jeśli pokazano kilka wartości SCI, skonfiguruj interfejsy zgodnie z wybraną konfiguracją komunikacji Neutron. Po zastosowaniu zmian konfiguracji uruchom ponownie komunikację lub urządzenie, jeśli wymaga tego menu konfiguracji.

3.2 TYPOWE POŁĄCZENIE TCP

Tabela 3

Pozycja

Przykład

Urządzenie nadrzędne Modbus

PLC, SCADA, HMI or industrial PC

Transport

Ethernet lub Wi-Fi TCP/IP

Adres docelowy

Adres IP Neutron

Port usługi

502

Unit ID

Wartość MBA; domyślnie 1

Dla stabilnej instalacji przemysłowej zalecany jest Ethernet, gdy dostępna jest sieć przewodowa. Wi-Fi wprowadza opóźnienie zależne od sieci i wymaga oceny w środowisku zastosowania.

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

Modbus RTU może działać przez RS-232 lub RS-485. Ustawienia komunikacji szeregowej urządzenia nadrzędnego Modbus muszą odpowiadać ustawieniom interfejsu szeregowego skonfigurowanym w Neutron. Identyfikator urządzenia podrzędnego Modbus ustawia parametr MBA; domyślnie wynosi 1.

Aby korzystać z Modbus RTU, wybierz Modbus RS-232 lub Modbus RS-485 w interfejsach komunikacji wagi (parametr SCI).

Tabela 4

Interfejs

Typowa zasada okablowania

Ważna uwaga

RS-232

Połącz TX, RX i GND między Neutron a urządzeniem nadrzędnym Modbus. Może być wymagane skrzyżowanie TX/RX, zależnie od tego, czy podłączone porty są DTE czy DCE.

Stosuj krótkie połączenia punkt-punkt i wspólną masę sygnałową.

RS-485

Połącz A z A i B z B zgodnie z oznaczeniami zacisków obu urządzeń; podłącz odniesienie sygnału / GND, jeśli wymaga tego instalacja.

Stosuj topologię łańcuchową. Nie stosuj połączeń w gwiazdę. Terminację linii umieszczaj tylko na obu fizycznych końcach, tam gdzie jest wymagana.

Zawsze przestrzegaj oznaczeń zacisków Neutron i schematu okablowania dostarczonego z urządzeniem. Producenci nie zawsze oznaczają polaryzację RS-485 tak samo; jeśli komunikacja nie zostanie nawiązana, sprawdź polaryzację A/B i konfigurację urządzenia nadrzędnego.

4. ADRESOWANIE I REPREZENTACJA DANYCH

Instrukcja używa konwencjonalnej notacji referencyjnej Modbus (na przykład 40101). Wiele narzędzi klientów Modbus używa adresów początkowych liczonych od zera. W takich narzędziach usuń pierwszą cyfrę określającą obszar rejestrów i odejmij 1 od adresu referencyjnego.

Tabela 5

Notacja referencyjna

Adres początkowy liczony od zera

Przykład

40001
0

Rejestr holding 40001

40101
100

Rejestr holding 40101

40232
231

Rejestr holding 40232

40380
379

Rejestr holding 40380

Przed uruchomieniem sprawdź konwencję adresowania urządzenia nadrzędnego Modbus. Przesunięcie o jeden rejestr jest najczęstszą przyczyną nieprawidłowej interpretacji danych.

4.1 FORMAT MASY

  • Wartości brutto, netto i tary są 32-bitowymi liczbami całkowitymi ze znakiem zapisanymi w dwóch kolejnych 16-bitowych rejestrach.

  • Starsze słowo jest przesyłane jako pierwsze (kolejność rejestrów big-endian).

  • Pozycja przecinka jest podawana w rejestrze konfiguracji wyjść / stanu, bity 14..13.

  • Rejestry masy brutto i netto o wysokiej rozdzielczości 40109–40112 używają dwóch dodatkowych miejsc dziesiętnych, gdy wartość wysokiej rozdzielczości jest dostępna.

Przykład: gdy pole pozycji przecinka wskazuje 2 miejsca dziesiętne, 32-bitowa wartość ze znakiem 12345 reprezentuje 123.45 w aktywnej jednostce. Jednostka jest dostępna w rejestrze 40113 i jest też zakodowana w rejestrze konfiguracji wyjść/stanu.

5. OBSŁUGIWANE FUNKCJE MODBUS

Tabela 6

Funkcja

Nazwa

Zastosowanie w Neutron

01

Read Coils

Odczyt stanów wyjść cyfrowych (cewki 1..6 odpowiadają DO1..DO6).

03

Read Holding Registers

Odczyt rejestrów zapisywalnych i związanych z poleceniami.

04

Read Input Registers

Odczyt danych procesowych, mas i rejestrów stanu.

05

Write Single Coil

Ustawianie jednego wyjścia cyfrowego, gdy jego funkcja jest wyłączona.

06

Write Single Register

Zapis jednego rejestru holding, w tym pól związanych z poleceniami.

15

Write Multiple Coils

Ustawianie wielu wyjść cyfrowych, gdy funkcje są wyłączone.

16

Write Multiple Registers

Zapis polecenia, parametrów i danych kalibracji jako bloku.

Operacje zapisu do wyjść sterowanych skonfigurowaną funkcją wyjścia są odrzucane. Typowe wyjścia sterowane funkcją obejmują wyjścia tolerancji i dozowania.

6. MAPA REJESTRÓW DANYCH PROCESOWYCH

6.1 GŁÓWNE REJESTRY PROCESOWE

Tabela 7

Adres referencyjny Input / Holding

Opis

Typ danych / uwagi

30001-30002 / 40001-40002

Masa brutto

INT32 ze znakiem, kolejność rejestrów big-endian.

30003-30004 / 40003-40004

Masa netto

INT32 ze znakiem, kolejność rejestrów big-endian.

30005 / 40005

Stan wagi

Pole bitowe; patrz sekcja 6.3.

30006 / 40006

Stan polecenia

Stan przetwarzania polecenia.

30007 / 40007

Konfiguracja wyjść / stanu

Pole bitowe: wyjścia, jednostka i pozycja przecinka.

Mapa główna umożliwia prostym urządzeniom nadrzędnym pobieranie masy netto lub brutto i najważniejszych danych stanu z niewielkiego ciągłego zakresu rejestrów.

6.2 ROZSZERZONE REJESTRY PROCESOWE

Tabela 8

Rejestr holding

Opis

Typ danych / uwagi

40101-40102

Masa brutto

INT32 ze znakiem.

40103-40104

Masa netto

INT32 ze znakiem.

40105-40106

Masa tary

INT32 ze znakiem.

40107

Stan wagi

Pole bitowe; patrz sekcja 6.3.

40108

Konfiguracja wyjść / stanu

Pole bitowe; patrz sekcja 6.3.

40109-40110

Masa brutto o wysokiej rozdzielczości

INT32 ze znakiem; dwa dodatkowe miejsca dziesiętne, jeśli dostępne.

40111-40112

Masa netto o wysokiej rozdzielczości

INT32 ze znakiem; dwa dodatkowe miejsca dziesiętne, jeśli dostępne.

40113

Jednostka

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

40114

Maska wejść cyfrowych

Bity 0..5 = DI1..DI6.

40115

Maska wyjść cyfrowych

Bity 0..5 = DO1..DO6.

40116

Maska funkcji wyjść

Ustawiony bit oznacza, że odpowiednie wyjście jest sterowane funkcją.

40117

Punkty ADC

Surowa wartość ADC.

40119

Miliwolty

Sygnał czujnika tensometrycznego w mV.

40231

Stan polecenia

Stan przetwarzania polecenia.

40232

Polecenie

Tutaj zapisz kod polecenia.

40233

Parametr polecenia 1

Opcjonalny parametr polecenia w 40232.

6.3 POLA BITOWE STANU I KONFIGURACJI

6.3.1 REJESTR STANU WAGI (30005 / 40005 / 40107)

Tabela 9

Bit

Znaczenie (jeśli wartość bitu=1)

0

Masa netto jest ujemna.

1

Masa brutto jest ujemna.

2

Masa jest stabilna.

3

Stan niedociążenia.

4

Stan przeciążenia.

5

Tara jest aktywna.

6

Zadana / ręczna tara jest aktywna.

7

Masa brutto wynosi zero.

8

Wejście cyfrowe 1 jest aktywne.

9

Wejście cyfrowe 2 jest aktywne.

10

Błąd wagi / ADC jest aktywny.

6.3.2 REJESTR KONFIGURACJI WYJŚĆ / STANU (30007 / 40007 / 40108)

Tabela 10

Bit(y)

Znaczenie

0..5

Stan wyjść cyfrowych: DO1..DO6.

6..7

Kod aktywnej jednostki: 0 = g; 1 = kg; 2 = t; 3 = lb.

8

Błąd wagi / czujnika tensometrycznego.

13..14

Kod pozycji przecinka dla standardowych wartości masy.

W aplikacjach wymagających stanów wszystkich wyjść używaj rejestru 40115. Rejestr 40116 pozwala ustalić, które wyjścia są obecnie zarezerwowane przez aktywną funkcję.

7. POLECENIA I WYJŚCIA CYFROWE

7.1 OBSŁUGA REJESTRU POLECEŃ

Zapisz kod polecenia w rejestrze holding 40232. Przed wydaniem polecenia zapisz opcjonalny parametr w 40233. Stan polecenia można odczytać z 40231. Kod polecenia 0 kasuje zabezpieczenie przed powtórzeniem i pozwala ponownie wykonać to samo polecenie.

Tabela 11

Kod polecenia

Parametr 40233

Działanie

0
-

Brak polecenia; reset zabezpieczenia przed powtórzeniem.

1
0

Zerowanie po sprawdzeniu stabilności.

1
1

Zerowanie natychmiastowe.

2
0

Tarowanie po sprawdzeniu stabilności.

2
1

Tarowanie natychmiastowe.

3
-

Kasowanie tary.

25

Maska bitowa wyjść

Ustawienie wyjść cyfrowych zgodnie z maską bitową.

Skrót: zapis kodu polecenia w rejestrze holding 40001 również wykonuje polecenie. Dla przewidywalnej integracji zalecane są rozszerzone rejestry poleceń 40232 i 40233, szczególnie gdy wymagany jest parametr.

7.2 WYJŚCIA CYFROWE

  • Cewki 1..6 odpowiadają DO1..DO6.

  • Używaj funkcji 01, 05 i 15 do odczytu lub zapisu cewek.

  • Wyjście można zmienić przez Modbus tylko wtedy, gdy jego funkcja wyjścia jest wyłączona.

  • Jeśli wyjściem steruje tolerancja, dozowanie lub inna aktywna funkcja, urządzenie odrzuca zapis Modbus do tego wyjścia.

Przykład: aby aktywować DO1 i DO3 kodem polecenia 25, zapisz maskę bitową 000101 w zapisie binarnym (dziesiętnie 5) w 40233, a następnie zapisz 25 w 40232. Sprawdź wynik przez rejestr 40115 lub cewki 1..6.

8. INTERFEJS KALIBRACJI

Kalibracja jest wykonywana przez rejestry holding. Prawidłowe dane kalibracji są zapisywane w pamięci flash. Jeśli kalibracja się nie powiedzie, zmienione dane nie zostają zapisane.

8.1 DANE KALIBRACJI

Tabela 12

Adres referencyjny holding

Początek liczony od zera

Opis

40300
299

Pole bitowe stanu kalibracji.

40301
300

Kanał wagowy.

40302
301

Liczba miejsc dziesiętnych używana dla mas kalibracyjnych.

40303
302

Liczba prawidłowych punktów kalibracji.

40304-40305
303

Punkt zerowy ADC, INT32 ze znakiem.

Tabela 13

Bit stanu kalibracji

Znaczenie

0

Punkt zerowy istnieje.

1

Pierwszy punkt masy kalibracyjnej istnieje.

2

Waga ma minimalną prawidłową kalibrację.

8

Błąd wagi / ADC jest aktywny.

8.2 BLOKI PUNKTÓW KALIBRACJI

Punkt 1 zaczyna się od 40310 (adres początkowy liczony od zera 309). Każdy punkt kalibracji zajmuje osiem rejestrów. Rejestr początkowy punktu N to 40310 + ((N - 1) x 8).

Tabela 14

Przesunięcie w bloku punktu

Opis

+0

Flaga poprawności: 0 = nieprawidłowy; 1 = prawidłowy.

+1..+2

Masa kalibracyjna, INT32 ze znakiem.

+3..+4

Punkt ADC, INT32 ze znakiem.

+5..+6

Współczynnik x100, INT32 ze znakiem.

+7

Zarezerwowane.

Przykłady: punkt 1 = 40310-40317; punkt 2 = 40318-40325; punkt 3 = 40326-40333; punkt 8 = 40366-40373.

8.3 POLECENIA KALIBRACJI

Tabela 15

Adres referencyjny holding

Początek liczony od zera

Opis

40380
379

Polecenie.

40381
380

Numer punktu.

40382-40383
381

Masa kalibracyjna, INT32 ze znakiem.

40384
383

Flagi.

40385
384

Wyzwalacz.

40386
385

Wynik polecenia.

40387
386

Ostatnie wykonane polecenie.

Tabela 16

Polecenie

Opis

1

Kalibracja zera.

2

Kalibracja punktu masy.

3

Usunięcie punktu kalibracji.

4

Usunięcie punktu zerowego.

5

Usunięcie całej kalibracji.

6

Ponowne załadowanie / inicjalizacja wagi.

Rejestr flag 40384: bit 0 określa, czy wymagana jest stabilność. Wartość 0 wykonuje operację natychmiast; wartość 1 wymaga stabilnej średniej ADC. Wszystkie pozostałe bity flag są zarezerwowane.

Tabela 17

Wynik 40386

Znaczenie

0

OK.

1

Nieprawidłowe polecenie.

2

Błędne dane.

3

Niedozwolone.

4

Nieobsługiwane polecenie.

5

Kalibracja nieudana.

8.4 SEKWENCJA WYZWALANIA

Oprogramowanie układowe przetwarza kalibrację tylko wtedy, gdy rejestr wyzwalający 40385 zmienia się na wartość niezerową. Dla każdego polecenia kalibracji stosuj następującą sekwencję:

  1. Zapisz polecenie i wszystkie wymagane parametry.

  2. Zapisz 40385 = 1, aby wykonać operację.

  3. Poczekaj na zakończenie polecenia i odczytaj 40386.

  4. Zapisz 40385 = 0, aby zresetować wyzwalacz.

  5. Dla następnego polecenia zapisz parametry i ponownie zmień 40385 na 1.

8.5 PRZYKŁADY

Tabela 18

Polecenie

Kalibracja zera

Cel

Write Multiple Registers, zaczynając od adresu 379 liczonego od zera.

Odpowiedzi

40380 = 1

Polecenie: kalibracja zera.

40381 = 0

Numer punktu nie jest używany.

40382 = 0; 40383 = 0

Masa kalibracyjna nie jest używana.

40384 = 1

Wymagana stabilna średnia ADC.

40385 = 1

Wyzwolenie operacji.

Odczytaj 40386

Oczekiwany wynik: 0 (OK).

Tabela 19

Polecenie

Kalibracja punktu 1 masą 10.000 kg

Cel

Dla 40302 = 3 przemnóż masę kalibracyjną przez 1000.

Odpowiedzi

40380 = 2

Polecenie: kalibracja punktu masy.

40381 = 1

Numer punktu 1.

40382-40383 = 10000

10.000 kg x 1000.

40384 = 1

Wymagana stabilna średnia ADC.

40385 = 1

Wyzwolenie operacji.

Odczytaj 40386

Oczekiwany wynik: 0 (OK).

Tabela 20

Polecenie

Usuń punkt 1

Cel

Usuń pierwszy punkt kalibracji.

Odpowiedzi

40380 = 3

Polecenie: usunięcie punktu kalibracji.

40381 = 1

Numer punktu 1.

40385 = 1

Wyzwolenie operacji.

Tabela 21

Polecenie

Usuń całą kalibrację

Cel

Usuń wszystkie zapisane dane kalibracji.

Odpowiedzi

40380 = 5

Polecenie: usunięcie całej kalibracji.

40385 = 1

Wyzwolenie operacji.

9. URUCHOMIENIE I ROZWIĄZYWANIE PROBLEMÓW

  1. Skonfiguruj SCI dla wymaganej kombinacji interfejsów i ustaw MBA na wymagany identyfikator urządzenia podrzędnego / jednostki Modbus.

  2. Dla Modbus TCP potwierdź adres IP i połącz się z portem TCP 502. Dla Modbus RTU dopasuj parametry szeregowe i sprawdź okablowanie.

  3. Odczytaj znany rejestr, na przykład 40113 (jednostka) lub 40107 (stan wagi), aby sprawdzić adresowanie.

  4. Odczytaj 40101-40106 i zdekoduj 32-bitowe wartości brutto, netto i tary ze znakiem, korzystając z podanej pozycji przecinka.

  5. Sprawdź stan wagi, wejścia i wyjścia cyfrowe przed włączeniem funkcji sterowania.

  6. Używaj rejestrów poleceń i funkcji kalibracji dopiero po potwierdzeniu aktywności właściwego kanału wagowego i stanu aplikacji.

9.2 TYPOWE PROBLEMY

Tabela 22

Objaw

Prawdopodobna przyczyna

Działanie

Brak odpowiedzi Modbus

Interfejs komunikacji wagi (SCI) nie jest skonfigurowany dla wybranego interfejsu; błędny IP/port lub ustawienia szeregowe; nieprawidłowe okablowanie.

Sprawdź SCI, port TCP 502, MBA, osiągalność sieciową, parametry szeregowe i fizyczne okablowanie.

Wartości są przesunięte lub nieprawidłowe

Klient stosuje nieprawidłową konwersję adresu referencyjnego na liczony od zera; słowa 32-bitowe są dekodowane w złej kolejności.

Sprawdź konwencję adresowania klienta i używaj INT32 ze znakiem z kolejnością rejestrów big-endian.

Masa ma nieprawidłową pozycję przecinka

Klient ignoruje konfigurację pozycji przecinka lub format wysokiej rozdzielczości.

Odczytaj 40108 i zastosuj bity 14..13; rejestrów wysokiej rozdzielczości używaj tylko wtedy, gdy są wymagane.

Nie można zapisać wyjścia

Wyjście jest sterowane przypisaną funkcją.

Odczytaj 40116 i wyłącz odpowiednią funkcję wyjścia przed sterowaniem wyjściem przez Modbus.

To samo polecenie nie wykonuje się ponownie

Zabezpieczenie przed powtórzeniem nie zostało zresetowane.

Zapisz polecenie 0 w 40232, a następnie ponownie wydaj polecenie.

Polecenie kalibracji nie daje efektu

Wyzwalacz nie zmienił się na wartość niezerową lub nie został zresetowany po poprzednim poleceniu.

Ustaw wszystkie parametry, zmień 40385 na 1, odczytaj 40386, a następnie zapisz w 40385 z powrotem 0.

Uwaga dotycząca bezpieczeństwa: kalibracja, zerowanie, tarowanie i sterowanie wyjściami mogą wpływać na wynik ważenia i podłączone maszyny. Stosuj kontrolę dostępu, sprawdzaj polecenia w aplikacji nadrzędnej i zapewnij zgodność wszystkich operacji z obowiązującymi wymaganiami metrologicznymi i bezpieczeństwa maszyn.

10. Automatyczna waga kontrolna

Rozdział opisuje podstawowy interfejs CHECKWEIGHER, wersja mapy rejestrów 1. Obsługuje odczyt stanu procesu i ostatniego zakończonego wyniku, wybór istniejącej receptury, konfigurację autostartu i START / STOP / STOP NOW / RESET. Nie obejmuje edycji receptur, konfiguracji filtrów, wyboru aplikacji, przypisywania I/O ani szczegółowego strumieniowania diagnostycznego. Skonfiguruj je zwykłym interfejsem ustawień przed użyciem tego bloku.

10.1 Połączenie i adresowanie

Mapa jest identyczna w Modbus TCP i włączonych interfejsach Modbus RTU. Używaj jednego klienta/urządzenia nadrzędnego sterującego; dodatkowi odbiorcy mogą monitorować dane. Istnieje jedna wspólna skrzynka poleceń dla wszystkich transportów, a nie po jednej dla każdego klienta. Nie używaj żądań rozgłoszeniowych dla tego interfejsu. Przed sterowaniem odczytaj blok i potwierdź application=4 (CHECKWEIGHER), kanał i poprawność migawki.

Poniższe adresy są adresami PDU liczonymi od zera. Dla klientów używających notacji 4xxxx adres referencyjny = 40001 + adres: adres 400 to 40401, a adres 480 to 40481. Do odczytu używaj funkcji 03 (lub 04). Polecenia zapisuj tylko funkcją 16 (0x10), zaczynając od 480 i zapisując dokładnie osiem rejestrów. Funkcja 06 i zapisy częściowe są odrzucane. Rejestry wyniku/stanu są tylko do odczytu. Przerwy między blokami odczytu i zapisu nie można odczytywać.

Odczytaj adres 400 z liczbą 48, aby uzyskać stan, potwierdzenie polecenia i ostatni wynik w jednym żądaniu. Możesz też odczytać 400/liczba 24 dla stanu lub 424/liczba 24 dla wyniku. Wszystkie wartości 32-bitowe używają najpierw starszego słowa; każdy rejestr używa standardowej kolejności Modbus ze starszym bajtem jako pierwszym. Nie dziel wartości 32-bitowej między oddzielne żądania.

10.2 Mapa rejestrów stanu i wyniku

Tabela 23

PDU / adres referencyjny

Słowa

Nazwa / typ

Opis

400 / 40401
1

MAP_VERSION / UINT16

1 dla tej mapy.

401 / 40402
2

BOOT_ID / UINT32

Niezerowy losowy token sesji generowany przy uruchomieniu urządzenia. Powtarzaj go w każdym zapisie; nie jest zachowywany po ponownym uruchomieniu. Nie jest to poświadczenie bezpieczeństwa.

403 / 40404
1

CHANNEL / UINT16

Bieżący kanał wagowy.

404 / 40405
1

APPLICATION / UINT16

Do sterowania musi wynosić 4.

405 / 40406
1

STATE / UINT16

0 IDLE; 1 START_CHECK; 2 RUN; 3 DRAINING; 4 PAUSED; 5 STOPPED; 6 ERROR; 7 CONS_LOST.

406 / 40407
1

ACTIVE_ID / UINT16

Wybrana receptura; może różnić się od RESULT_ID poprzedniego produktu.

407 / 40408
1

AUTOSTART / UINT16

Trwałe CWAUTO: 0 wyłączone, 1 włączone.

408 / 40409
1

PROCESS_ERROR / UINT16

Bieżący błąd procesu blokujący pracę; 0 brak.

409 / 40410
1

BELT / UINT16

Logiczne żądanie pracy taśmy, 0/1; nie jest to informacja zwrotna silnika.

410 / 40411
1

CONS / INT16

-1 (0xFFFF) nieprzypisane; 0 nieaktywne; 1 aktywne.

411 / 40412
1

PQ / UINT16

Oczekujące produkty.

412 / 40413
1

EQ / UINT16

Oczekujące/aktywne zdarzenia wyjść.

413 / 40414
1

AUTO_STATE / UINT16

Wynik autostartu: patrz 10.5.

414 / 40415
1

AUTO_ERROR / UINT16

Błąd autostartu przy uruchomieniu; 0 brak.

415 / 40416
1

SNAPSHOT_VALID / UINT16

1 użyteczna migawka; 0 niedostępna. Przed sterowaniem sprawdź też APPLICATION.

416 / 40417
2

REQUEST_ID / UINT32

Ostatnie przyjęte żądanie; zmienia się natychmiast po przyjęciu.

418 / 40419
2

ACK_ID / UINT32

Ostatnie zakończone żądanie. 0 oznacza brak od uruchomienia.

420 / 40421
1

COMMAND_STATE / UINT16

0 IDLE; 1 BUSY; 2 DONE; 3 ERROR.

421 / 40422
1

COMMAND_ERROR / UINT16

Błąd aplikacji zakończonego żądania; patrz 10.4.

422 / 40423
1

APPLIED_MASK / UINT16

Bit 0 wybór receptury zastosowany; bit 1 autostart zastosowany. Może być niezerowy, gdy START kończy się niepowodzeniem.

423 / 40424
1

LAST_COMMAND / UINT16

Kod polecenia ostatniego przyjętego żądania.

424 / 40425
2

RESULT_SEQ / UINT32

Sekwencja ostatniego zakończonego produktu; porównuj wraz z BOOT_ID.

426 / 40427
1

RESULT_ID / UINT16

Receptura użyta dla tego wyniku.

427 / 40428
1

RESULT_FLAGS / UINT16

Bit 0 wynik istnieje; bit 1 masa prawidłowa/możliwa do przedstawienia; bit 2 granice możliwe do przedstawienia; bit 3 przepełnienie/nieprawidłowa konwersja liczbowa.

428 / 40429
1

DECIMALS / UINT16

Miejsca dziesiętne W, LO i HI tego wyniku.

429 / 40430
1

UNIT / UINT16

0 g; 1 kg; 2 t; 3 lb; 4 oz; 5 N; 65535 inna/nieznana. Nie zakładaj g dla nieznanych jednostek.

430 / 40431
2

W / INT32

Masa netto z uwzględnieniem tary; podziel przez 10^DECIMALS. Używaj tylko wtedy, gdy ustawiony jest bit 1 RESULT_FLAGS.

432 / 40433
2

LO / INT32

Dolna granica tolerancji; używaj tylko z bitem flag 2.

434 / 40435
2

HI / INT32

Górna granica tolerancji; używaj tylko z bitem flag 2.

436 / 40437
1

WS / UINT16

Klasyfikacja masy: 0 LOW; 1 OK; 2 HIGH; 3 ERROR.

437 / 40438
1

LTS / UINT16

Długość: 0 OK; 1 LENGTH_LOW; 2 LENGTH_HIGH; 3 DISABLED.

438 / 40439
1

RESULT / UINT16

0 LOW; 1 OK; 2 HIGH; 3 ERROR; 4 OVERLAP; 5 ABORTED; 6 ABORTED_CONS.

439 / 40440
1

PRODUCT_ERROR / UINT16

Błąd tego produktu; niezależny od PROCESS_ERROR.

440 / 40441
1

NS / UINT16

Przyjęte próbki ostatniego zakończonego wyniku przed odrzuceniem skrajnych; nie jest to liczba próbek bieżącego produktu.

441 / 40442
2

TD / UINT32

Czas wykrycia w milisekundach od uruchomienia; zawija się po około 49.7 dniach.

443 / 40444
2

ET / UINT32

Milisekundy od wykrycia do wyniku.

445 / 40446
2

LT / UINT32

Czas aktywności czujnika produktu ON w milisekundach; 0 w trybie wyzwalania masą.

447 / 40448
1

RESERVED / UINT16

0; ignoruj w wersji 1.

Stan i ostatni wynik są kopiowane pod blokadą procesu. Każda odpowiedź zawiera spójną migawkę; kolejne żądanie może zobaczyć nowsze dane. RESULT_SEQ, RESULT_ID, DECIMALS i UNIT należą do zapisanego wyniku, a nie do aktualnie wybranej receptury. Przed pierwszym wynikiem bit flag 0 jest wyzerowany: nie interpretuj wypełnionych zerami pól wyniku jako rzeczywistego produktu o zerowej masie. Odczyt nigdy nie zużywa ani nie kasuje wyniku.

Przykład: W high=0x0000, low=0x07D1 daje liczbę całkowitą ze znakiem 2001. Przy DECIMALS=1 i UNIT=0 masa wynosi 200.1 g. Wartości ujemne używają 32-bitowego kodu uzupełnień do dwóch. Jeśli konwersja przekracza INT32 lub wartości wagi nie można przedstawić, odpowiedni bit poprawności jest wyzerowany, jej rejestry liczbowe mają wartość zero, a bit flag 3 jest ustawiony. Oryginalny wynik produktu nie zostaje zmieniony.

10.3 Blok sterowania w jednym zapisie

Tabela 24

Adres / adres referencyjny

Nazwa

Wartość

480 / 40481
COMMAND

0 tylko ustawienia; 1 START; 2 STOP DRAIN; 3 STOP NOW; 4 RESET.

481 / 40482

CHANGE_MASK

Bit 0: wybierz RECIPE_ID. Bit 1: ustaw AUTOSTART. Pozostałe bity muszą wynosić 0.

482 / 40483

RECIPE_ID

1–500, gdy ustawiony jest bit maski 0. W przeciwnym razie zapisz 0. Receptura musi już istnieć.

483 / 40484
AUTOSTART

0 lub 1, gdy ustawiony jest bit maski 1. W przeciwnym razie zapisz 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.

Dla COMMAND 2, 3 lub 4 wartości CHANGE_MASK, RECIPE_ID i AUTOSTART muszą wynosić 0. Ustawienia można łączyć z COMMAND 0 lub 1. Wybór receptury i zmiany autostartu wymagają zatrzymanego procesu po opróżnieniu. START bez bitu zmiany receptury uruchamia aktualnie wybraną recepturę. Wybór aplikacji i tworzenie receptur pozostają poza zakresem Modbus.

Cała ramka jest sprawdzana przed przyjęciem. Żaden częściowy zapis bloku sterowania nie odnosi skutku. Normalna odpowiedź funkcji 16 oznacza przyjęcie żądania do skrzynki, a nie powodzenie START. Wykonanie odbywa się z istniejącej pętli głównej. Odpytuj, aż ACK_ID będzie równe wysłanemu identyfikatorowi, a COMMAND_STATE wyniesie DONE lub ERROR. BUSY może trwać zbyt krótko, aby je zaobserwować; nigdy nie wymagaj jego zaobserwowania przed zaakceptowaniem DONE.

Utrzymuj jedno niezakończone żądanie. Jeśli zapis przekroczy limit czasu, ponownie odczytaj BOOT_ID, REQUEST_ID i ACK_ID. Jeśli token uruchomienia jest niezmieniony, w razie potrzeby prześlij ponownie dokładnie te same osiem słów. Powtórzenie ostatnio przyjętego żądania z identycznymi danymi jest potwierdzane bez ponownego wykonania, niezależnie od tego, czy oczekuje czy jest zakończone. Ten sam identyfikator ze zmienionymi danymi, pominięte/stare identyfikatory, inny token uruchomienia lub kolejne żądanie podczas BUSY są odrzucane. Po restarcie zsynchronizuj się z nowym tokenem i bieżącym stanem procesu; nie odtwarzaj automatycznie starego START.

Do wykrywania duplikatów zachowywane jest tylko ostatnie żądanie; nie ma trwałego dziennika poleceń. Restart sieci bez restartu urządzenia nie kasuje skrzynki. Protokół zakłada jeden sterujący PLC; nie rozstrzyga konfliktów między konkurującymi nadawcami. Token uruchomienia i licznik żądań zapobiegają przypadkowemu odtwarzaniu, a nie nieautoryzowanemu dostępowi.

10.4 Zastosowane ustawienia, wyniki poleceń i błędy

Najpierw stosowany jest wybór receptury, następnie autostart, a na końcu polecenie. Składnia, zakres identyfikatorów i poprawność receptury są sprawdzane przed zmianami ustawień. Błędy pamięci flash mogą mimo to pozostawić wcześniejsze ustawienie zastosowane. APPLIED_MASK dokładnie zgłasza, które żądane ustawienia się powiodły. Na przykład receptura 25 i AUTOSTART=1 mogą zostać zapisane, podczas gdy START zostanie odrzucony z powodu nieaktywnego CONS: COMMAND_STATE=ERROR, COMMAND_ERROR=11, APPLIED_MASK=3. Ustawienia nie są wycofywane. Przed decyzją o ponowieniu odczytaj ACTIVE_ID i AUTOSTART.

Poniższe kody błędów należą do COMMAND_ERROR i nie wolno mylić ich z polami błędów procesu/produktu. Odrzucony zapis na poziomie transportu nie zmienia skrzynki ani ACK_ID. Niedozwolone adresy, zapisy tylko do odczytu, zapisy częściowe i nieobsługiwane zakresy bloków zwracają wyjątek Modbus 02. Prawidłowo zaadresowany ośmiosłowowy zapis sterujący z nieprawidłowymi danymi, tokenem, sekwencją lub stanem skrzynki zwraca wyjątek 03.

Tabela 25

Kod

Znaczenie

0

Powodzenie.

1

Wybrana receptura nie istnieje lub jest nieprawidłowa.

5 / 6

START odrzucony: masa poza dopuszczalnym zakresem.

7

Wymagana pamięć niedostępna.

11

Skonfigurowany CONS jest nieaktywny.

13

Jednostka receptury nie odpowiada jednostce wagi.

15

Konfiguracja/stan czujnika uniemożliwia operację.

16

Niewłaściwa aplikacja, działający proces, nieusunięta usterka lub kolidująca operacja wagi.

17

Nieprawidłowe argumenty żądania lub system pomiarowy niegotowy.

25

Błąd odczytu lub zapisu ustawień/bazy danych.

STOP DRAIN nie przyjmuje nowych produktów i kończy przyjęte produkty oraz zdarzenia wyjść. Jego potwierdzenie DONE oznacza zażądanie zatrzymania; STATE=5 potwierdza zakończenie. STOP NOW anuluje otwarte produkty/zdarzenia i dezaktywuje wyjścia procesowe. STOP nie zastępuje RESET przy usterce blokującej. RESET ponownie sprawdza wagę i warunki wstępne i nie uruchamia taśmy; jeśli przyczyna pozostaje, kończy się niepowodzeniem. Wszystkie polecenia używają normalnych blokad wagi kontrolnej. Wynik jest rezultatem pomiaru, a nie potwierdzeniem zadziałania fizycznego mechanizmu odrzucającego.

10.5 Autostart

AUTOSTART to trwałe ustawienie CWAUTO, domyślnie 0. Włączenie go nie powoduje natychmiastowego uruchomienia; połącz z COMMAND=1, aby wykonać natychmiastowy START. Przy następnym uruchomieniu urządzenia musi być wybrana aplikacja CHECKWEIGHER, początkowe zerowanie musi być włączone i zakończone powodzeniem, a prawidłowa ostatnio aktywna trwała receptura musi być dostępna. Nadal obowiązują normalne kontrole START. Nieudana próba przy uruchomieniu nie jest ponawiana, gdy później zmieni się wejście. Ręczny STOP, PAUSE lub usterki nie wyzwalają automatycznego ponownego uruchomienia. Niezmienione wartości nie powodują kolejnego zapisu ustawień.

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 to kod odrzuconego START przy uruchomieniu. Jest to wynik próby przy uruchomieniu; STATE i PROCESS_ERROR opisują bieżący proces.

10.6 Przykłady PLC

Przykład 1 — odczyt wszystkiego: funkcja 03, początek PDU=400, liczba=48 (adres referencyjny 40401). Sprawdź MAP_VERSION=1, APPLICATION=4 i SNAPSHOT_VALID=1. Zapisz BOOT_ID i ACK_ID. Odczyt danych nie wymaga polecenia.

Przykład 2 — wybór receptury 25, włączenie autostartu i START w jednym zapisie. Załóż BOOT_ID=0x12345678 i ACK_ID=0. Zapisz funkcją 16, początek PDU=480, liczba=8, słowa dziesiętne: [1, 3, 25, 1, 0, 1, 4660, 22136]. Słowa uruchomienia są poglądowe: zawsze kopiuj je z urządzenia. Czekaj na ACK_ID=1 i COMMAND_STATE=2, a następnie sprawdź STATE=2 (RUN). Jeśli COMMAND_STATE=3, sprawdź COMMAND_ERROR i APPLIED_MASK.

Przykład 3 — STOP DRAIN. Zakładając zakończenie poprzedniego żądania, wyślij [2, 0, 0, 0, 0, 2, 4660, 22136]. Czekaj na ACK_ID=2. DONE potwierdza przyjęcie; kontynuuj odpytywanie aż do STATE=5 (STOPPED). Oczekujące produkty mogą nadal generować wyniki podczas DRAINING.

Przykład 4 — zmień tylko recepturę po zatrzymaniu: [0, 1, 26, 0, 0, 3, 4660, 22136]. Nie zmienia to autostartu i nie uruchamia procesu. Uruchom później przez [1, 0, 0, 0, 0, 4, 4660, 22136].

Przykład 5 — reset usuniętej usterki: COMMAND=4 z mask/recipe/autostart=0, następnym identyfikatorem żądania i bieżącym BOOT_ID. Czekaj na pomyślne potwierdzenie; w razie potrzeby wydaj oddzielny START. Nie wysyłaj wielokrotnie RESET bez zdiagnozowania usterki.

Sugerowana cykliczna logika PLC (pseudokod Structured Text; dostosuj nazwy bloków Modbus do swojego PLC):

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 odnosi się do ostatniego zakończonego produktu i nie zmienia się do nadejścia nowego wyniku. Blok rejestrów ostatniego wyniku nie jest kolejką: jeśli między odczytami zakończą się dwa produkty, pośredniego wyniku nie można pobrać przez tę podstawową mapę. Monitoruj zmiany SEQ i wybierz interwał odpytywania krótszy niż najkrótszy odstęp między produktami. Po ponownym połączeniu zdecyduj, czy pierwszy dostępny wynik zapisać jako odzyskaną migawkę, czy użyć go tylko jako początkowej wartości odniesienia. Interfejs ten nie gwarantuje ścieżki audytu każdego produktu.

10.7 Kontrole przy uruchomieniu

  1. Sprawdź obie konwencje adresowania, kolejność słów i znane masy dodatnie/ujemne; odczytaj wszystkie 48 słów i oba podbloki 24-słowowe.

  2. Sprawdź flagi braku wyniku przed pierwszym produktem, następnie produkt OK, LOW i nieprawidłowy; potwierdź, że identyfikator/jednostka wyniku pozostają powiązane z zapisanym wynikiem po zmianie wybranej receptury.

  3. Powtórz identyczny przyjęty zapis przed zakończeniem/po zakończeniu: musi wykonać się raz. Wypróbuj zmienioną zawartość z tym samym identyfikatorem, pominięty identyfikator, zapis częściowy i zapis tylko do odczytu: każdy musi zostać odrzucony bez zmiany przyjętych ustawień.

  4. Przetestuj START przy nieaktywnym CONS i sprawdź APPLIED_MASK; przetestuj STOP DRAIN aż do STOPPED, STOP NOW, RESET usterki i kolejny START.

  5. Rozłącz/połącz ponownie i uruchom urządzenie ponownie. Sprawdź ponowną synchronizację żądań i odrzucenie starego tokenu uruchomienia. Przetestuj włączony/wyłączony autostart przy udanym i nieudanym początkowym zerowaniu.

  6. Powtórz na rzeczywistym PLC i obu skonfigurowanych transportach TCP/RTU. Potwierdź, że cykliczna komunikacja nie zakłóca ważenia ani czasowania wyjść.

Często zadawane pytania

Jak przeliczyć adres referencyjny rejestru na adres PDU?

Tabele rejestrów używają adresów referencyjnych 4xxxx liczonych od jedynki. Dla adresu referencyjnego 40101 adres PDU liczony od zera wynosi 100. Używaj konwencji adresowania wymaganej przez klienta Modbus.

Ile dodatkowych miejsc dziesiętnych używają masy o wysokiej rozdzielczości?

Masy brutto i netto o wysokiej rozdzielczości w rejestrach 40109–40112 używają dwóch dodatkowych miejsc dziesiętnych, gdy są dostępne. Dekoduj je jako 32-bitowe wartości ze znakiem i uwzględniaj konfigurację pozycji przecinka.

Czy blok wyników automatycznej wagi kontrolnej jest kolejką?

Nie. Przechowuje wynik ostatniego zakończonego produktu i pozostaje niezmieniony do nadejścia nowego wyniku. Monitoruj SEQ i wybierz interwał odpytywania krótszy niż najkrótszy odstęp między produktami. Wyników pośrednich nie można pobrać z tej podstawowej mapy.

Czy PLC może odtworzyć START po ponownym uruchomieniu urządzenia?

Ponownie zsynchronizuj obsługę poleceń po zmianie BOOT_ID. Odczytaj bieżące BOOT_ID i ACK_ID, nie odtwarzaj starego START i stosuj sekwencję skrzynki poleceń oraz kontrole opisane w przykładach PLC.

Potrzebujesz pomocy?

Potrzebujesz pomocy z oprogramowaniem, łącznością lub obsługą rozwiązania? Opisz problem, abyśmy mogli pomóc w następnym kroku.

Przygotuj zgłoszenie →