Przejdź do głównej zawartości

Modbus

Rozpoczyna wyszukiwanie urządzeń Modbus na magistrali RS-485.

POST /api/modbus/find/start/

Parametry żądania:

ParametrTypOpis
baudRateintegerPrędkość transmisji (bps: 75 do 230400).
charFormatintegerFormat bajtu:
0 - E1S;
1 - O1S;
2 - SPACE (0P1S);
3 - MARK (1P1S / NP2S);
4 - NP1S;
5 - AUTO STOP (Rx: NP1S / Tx: NP2S).
frameModeintegerFormat ramki: 0 - RTU, 1 - ASCII. Opcjonalny.
fastSearchbooleanWłącz szybkie wyszukiwanie (true/false). Opcjonalny.

Przykładowe żądanie:

{
"baudRate": 9600,
"charFormat": 3,
"frameMode": 0,
"fastSearch": false
}

Zatrzymuje aktywne wyszukiwanie urządzeń Modbus.

POST /api/modbus/find/stop/

Odpowiedź:

ParametrTypOpis
statusstringStatus: DONE - wyszukiwanie zatrzymane pomyślnie; BUSY - nie można zatrzymać wyszukiwania (spróbuj ponownie później).
{
"status": "DONE"
}

Zwraca listę znalezionych urządzeń.

GET /api/modbus/find/result/?list

Parametry żądania:

ParametrOpis
listJeśli określono, odpowiedź zawiera listę znalezionych urządzeń foundDevices.

Odpowiedź:

ParametrTypOpis
foundDevicesarrayLista znalezionych urządzeń.
uidintegerUID urządzenia.
baudRateintegerPrędkość transmisji (bps: 75 do 230400).
charFormatintegerFormat bajtu:
0 - E1S;
1 - O1S;
2 - SPACE (0P1S);
3 - MARK (1P1S / NP2S);
4 - NP1S;
5 - AUTO STOP (Rx: NP1S / Tx: NP2S).
frameModeintegerFormat ramki: 0 - RTU, 1 - ASCII.
{
"foundDevices": [
{
"uid": 1,
"baudRate": 9600,
"charFormat": 0,
"frameMode": 0
}
]
}

POST /api/modbus/class-find/search-meta-info/

Parametry żądania:

ParametrTypOpis
filePathstringŚcieżka do pliku szablonu na karcie SD.

Przykładowe żądanie:

{
"filePath": "/templates/em-481.txt"
}

Odpowiedź:

ParametrTypOpis
statusstringStatus: DONE (sukces), ERROR (błąd).
errorCodestring / nullKod błędu w przypadku niepowodzenia. Zobacz Kody błędów.

POST /api/modbus/class-find/start/?search-meta-info

Parametry żądania:

ParametrTypOpis
filePathstringŚcieżka do pliku szablonu na karcie SD.
baudRateintegerPrędkość transmisji.
charFormatintegerFormat bajtu.
frameModeintegerFormat ramki: 0 - RTU, 1 - ASCII.
uidintegerUID urządzenia (1-254).

Przykładowe żądanie:

{
"filePath": "/templates/em-481.txt",
"baudRate": 9600,
"charFormat": 3,
"frameMode": 0,
"uid": 111
}

Odpowiedź:

ParametrTypOpis
statusstringStatus: DONE (uruchomiono), ERROR (błąd).
errorCodestring / nullKod błędu w przypadku niepowodzenia. Zobacz Kody błędów.

POST /api/modbus/class-find/stop/

Odpowiedź:

ParametrTypOpis
statusstringStatus: DONE (zatrzymano), BUSY (nie można zatrzymać).

GET /api/modbus/class-find/result/

Odpowiedź:

ParametrTypOpis
mbReqPassedintegerLiczba zakończonych żądań Modbus.
checksPassedintegerLiczba wykonanych poleceń szablonu.
linesPassedintegerLiczba przeczytanych linii szablonu.
mbUidintegerUID urządzenia.
deviceClassstring / nullZidentyfikowana klasa urządzenia lub null.
scriptTimestring / nullCzas utworzenia pliku szablonu (ISO 8601) lub null.
scriptVersionstring / nullWersja pliku szablonu lub null.
statusstringStatus: DONE (sukces), BUSY (wyszukiwanie), ERROR (błąd).
errorCodestring / nullKod błędu w przypadku niepowodzenia. Zobacz Kody błędów.
KodOpis
Błędy systemu plików
ERROR_FR_DISK_ERRBłąd dysku niskiego poziomu
ERROR_FR_INT_ERRWewnętrzny błąd systemu plików
ERROR_FR_NOT_READYUrządzenie pamięci masowej nie jest gotowe
ERROR_FR_NO_FILENie znaleziono pliku
ERROR_FR_NO_PATHNie znaleziono ścieżki
ERROR_FR_INVALID_NAMENieprawidłowa nazwa pliku lub ścieżki
ERROR_FR_DENIEDOdmowa dostępu
ERROR_FR_EXISTPlik już istnieje
ERROR_FR_INVALID_OBJECTNieprawidłowy obiekt pliku
ERROR_FR_WRITE_PROTECTEDChroniony przed zapisem
ERROR_FR_INVALID_DRIVENieprawidłowy dysk
ERROR_FR_NOT_ENABLEDSystem plików nie jest zamontowany
ERROR_FR_NO_FILESYSTEMBrak systemu plików
ERROR_FR_MKFS_ABORTEDFormatowanie przerwane
ERROR_FR_TIMEOUTPrzekroczenie limitu czasu
ERROR_FR_LOCKEDPlik zablokowany
ERROR_FR_NOT_ENOUGH_CORENiewystarczająca pamięć
ERROR_FR_TOO_MANY_OPEN_FILESZa dużo otwartych plików
ERROR_FR_INVALID_PARAMETERNieprawidłowy parametr
Błędy silnika wyszukiwania
ERROR_METABłąd struktury szablonu
ERROR_LABELNieprawidłowa lub brakująca etykieta
ERROR_CONDITIONBłąd wyrażenia warunku
ERROR_CHECK_TYPENieznany typ sprawdzenia
ERROR_MODIFIER_PARAMETERBłąd parametru modyfikatora
ERROR_DATA_SOURCEBłąd źródła danych
ERROR_DATA_SOURCE_FUNCTIONNieznana funkcja źródła danych
ERROR_DATA_SOURCE_ADDRESSNieprawidłowy adres źródła danych
ERROR_CHECK_PARAMETERSBłąd parametrów sprawdzania
ERROR_ACTIONBłąd akcji
ERROR_ACTION_TYPENieznany typ akcji
ERROR_UNSUPPORTED_UTF_FORMATNieobsługiwany format UTF
ERROR_FILE_NOT_READNie udało się odczytać pliku szablonu
ERROR_LINE_OUTOFBOUNDLinia poza zakresem
ERROR_UID_HIDDEN_BY_VDEVICEUID ukryty przez urządzenie wirtualne
ERROR_ARGOgólny błąd argumentu
ERROR_MEMBłąd alokacji pamięci
ERROR_BUSYZasób zajęty
ERROR_SERIAL_IS_SLAVEUrządzenie jest w trybie podrzędnym
ERROR_EOFOsiągnięto koniec pliku

POST /api/modbus/req/

Parametry żądania:

ParametrTypOpis
reqDatastringCiąg szesnastkowy żądania Modbus (bez CRC).

Przykładowe żądanie:

{
"reqData": "010300000002"
}

Odpowiedź:

ParametrTypOpis
tidintegerID transakcji przypisany do pakietu.

GET /api/modbus/resp/?tid=...

Parametry żądania:

ParametrTypOpis
tidintegerID transakcji.

Odpowiedź:

ParametrTypOpis
respDatastringCiąg szesnastkowy odpowiedzi Modbus.
statusstringStatus: DONE (odebrano), BUSY (oczekiwanie).

Rozłącza i ponownie łączy się z serwerem chmury.

POST /api/cmd/callback/reconnect/

Parametry żądania:

PoleTypOpis
requestNewCodebooleanŻądanie nowego kodu aktywacyjnego przy ponownym połączeniu.

Przykładowe żądanie:

{
"requestNewCode": true
}