Перейти до вмісту

Modbus

Розпочинає пошук пристроїв Modbus на шині RS-485.

POST /api/modbus/find/start/

Параметри запиту:

ПараметрТипОпис
baudRateintegerШвидкість передачі (біт/с: 75 до 230400).
charFormatintegerФормат байта:
0 - E1S;
1 - O1S;
2 - SPACE (0P1S);
3 - MARK (1P1S / NP2S);
4 - NP1S;
5 - AUTO STOP (Rx: NP1S / Tx: NP2S).
frameModeintegerФормат кадру: 0 - RTU, 1 - ASCII. Опційно.
fastSearchbooleanУвімкнути швидкий пошук (true/false). Опційно.

Приклад запиту:

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

Зупиняє активний пошук пристроїв Modbus.

POST /api/modbus/find/stop/

Відповідь:

ПараметрТипОпис
statusstringСтатус: DONE - пошук зупинено успішно; BUSY - неможливо зупинити пошук (спробуйте пізніше).
{
"status": "DONE"
}

Отримати результати пошуку

Section titled “Отримати результати пошуку”

Повертає список знайдених пристроїв.

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

Параметри запиту:

ПараметрОпис
listЯкщо вказано, відповідь включає список знайдених пристроїв foundDevices.

Відповідь:

ПараметрТипОпис
foundDevicesarrayСписок знайдених пристроїв.
uidintegerUID пристрою.
baudRateintegerШвидкість передачі (біт/с: 75 до 230400).
charFormatintegerФормат байта:
0 - E1S;
1 - O1S;
2 - SPACE (0P1S);
3 - MARK (1P1S / NP2S);
4 - NP1S;
5 - AUTO STOP (Rx: NP1S / Tx: NP2S).
frameModeintegerФормат кадру: 0 - RTU, 1 - ASCII.
{
"foundDevices": [
{
"uid": 1,
"baudRate": 9600,
"charFormat": 0,
"frameMode": 0
}
]
}

Пошук за шаблоном та ідентифікація

Section titled “Пошук за шаблоном та ідентифікація”

Отримати META-інформацію з шаблону

Section titled “Отримати META-інформацію з шаблону”

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

Параметри запиту:

ПараметрТипОпис
filePathstringШлях до файлу шаблону на SD-карті.

Приклад запиту:

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

Відповідь:

ПараметрТипОпис
statusstringСтатус: DONE (успішно), ERROR (помилка).
errorCodestring / nullКод помилки в разі невдачі. Див. Коди помилок.

Розпочати пошук за шаблоном

Section titled “Розпочати пошук за шаблоном”

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

Параметри запиту:

ПараметрТипОпис
filePathstringШлях до файлу шаблону на SD-карті.
baudRateintegerШвидкість передачі.
charFormatintegerФормат байта.
frameModeintegerФормат кадру: 0 - RTU, 1 - ASCII.
uidintegerUID пристрою (1-254).

Приклад запиту:

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

Відповідь:

ПараметрТипОпис
statusstringСтатус: DONE (розпочато), ERROR (помилка).
errorCodestring / nullКод помилки в разі невдачі. Див. Коди помилок.
Section titled “Зупинити пошук за шаблоном”

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

Відповідь:

ПараметрТипОпис
statusstringСтатус: DONE (зупинено), BUSY (неможливо зупинити).

Отримати результати пошуку

Section titled “Отримати результати пошуку”

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

Відповідь:

ПараметрТипОпис
mbReqPassedintegerКількість виконаних запитів Modbus.
checksPassedintegerКількість виконаних команд шаблону.
linesPassedintegerКількість прочитаних рядків шаблону.
mbUidintegerUID пристрою.
deviceClassstring / nullІдентифікований клас пристрою, або null.
scriptTimestring / nullЧас створення файлу шаблону (ISO 8601), або null.
scriptVersionstring / nullВерсія файлу шаблону, або null.
statusstringСтатус: DONE (успішно), BUSY (пошук), ERROR (помилка).
errorCodestring / nullКод помилки в разі невдачі. Див. Коди помилок.

Коди помилок пошуку за шаблоном

Section titled “Коди помилок пошуку за шаблоном”
КодОпис
Помилки файлової системи
ERROR_FR_DISK_ERRПомилка диска низького рівня
ERROR_FR_INT_ERRВнутрішня помилка файлової системи
ERROR_FR_NOT_READYПристрій зберігання не готовий
ERROR_FR_NO_FILEФайл не знайдено
ERROR_FR_NO_PATHШлях не знайдено
ERROR_FR_INVALID_NAMEНедійсна назва файлу або шляху
ERROR_FR_DENIEDДоступ заборонено
ERROR_FR_EXISTФайл вже існує
ERROR_FR_INVALID_OBJECTНедійсний об’єкт файлу
ERROR_FR_WRITE_PROTECTEDЗахищено від запису
ERROR_FR_INVALID_DRIVEНедійсний диск
ERROR_FR_NOT_ENABLEDФайлова система не змонтована
ERROR_FR_NO_FILESYSTEMНемає файлової системи
ERROR_FR_MKFS_ABORTEDФорматування перервано
ERROR_FR_TIMEOUTЧас очікування вичерпано
ERROR_FR_LOCKEDФайл заблоковано
ERROR_FR_NOT_ENOUGH_COREНедостатньо пам’яті
ERROR_FR_TOO_MANY_OPEN_FILESЗабагато відкритих файлів
ERROR_FR_INVALID_PARAMETERНедійсний параметр
Помилки пошукового механізму
ERROR_METAПомилка структури шаблону
ERROR_LABELНедійсна або відсутня мітка
ERROR_CONDITIONПомилка умовного виразу
ERROR_CHECK_TYPEНевідомий тип перевірки
ERROR_MODIFIER_PARAMETERПомилка параметра модифікатора
ERROR_DATA_SOURCEПомилка джерела даних
ERROR_DATA_SOURCE_FUNCTIONНевідома функція джерела даних
ERROR_DATA_SOURCE_ADDRESSНедійсна адреса джерела даних
ERROR_CHECK_PARAMETERSПомилка параметрів перевірки
ERROR_ACTIONПомилка дії
ERROR_ACTION_TYPEНевідомий тип дії
ERROR_UNSUPPORTED_UTF_FORMATНепідтримуваний формат UTF
ERROR_FILE_NOT_READНе вдалося прочитати файл шаблону
ERROR_LINE_OUTOFBOUNDРядок за межами
ERROR_UID_HIDDEN_BY_VDEVICEUID прихований віртуальним пристроєм
ERROR_ARGЗагальна помилка аргументу
ERROR_MEMПомилка виділення пам’яті
ERROR_BUSYРесурс зайнятий
ERROR_SERIAL_IS_SLAVEПристрій у режимі підлеглого
ERROR_EOFДосягнуто кінця файлу

POST /api/modbus/req/

Параметри запиту:

ПараметрТипОпис
reqDatastringШістнадцятковий рядок запиту Modbus (без CRC).

Приклад запиту:

{
"reqData": "010300000002"
}

Відповідь:

ПараметрТипОпис
tidintegerID транзакції, призначений пакету.

Отримати відповідь Modbus

Section titled “Отримати відповідь Modbus”

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

Параметри запиту:

ПараметрТипОпис
tidintegerID транзакції.

Відповідь:

ПараметрТипОпис
respDatastringШістнадцятковий рядок відповіді Modbus.
statusstringСтатус: DONE (отримано), BUSY (очікування).

Перепідключитися до хмари через Modbus

Section titled “Перепідключитися до хмари через Modbus”

Від’єднується та перепідключається до хмарного сервера.

POST /api/cmd/callback/reconnect/

Параметри запиту:

ПолеТипОпис
requestNewCodebooleanЗапитати новий код активації при перепідключенні.

Приклад запиту:

{
"requestNewCode": true
}