DenSyo
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору fscpsd Цитата: вы бы для начала посмотрели, что у меня код в теге код Цитата: А пропинговать предварительно ваше устройство на предмет его доступности — не сработает? | так вот в этом мой вопрос и состоит - как избежать ошибки при выключенном устройстве. если есть возможность "пропинговать" rs485 устройство в скриптах, это было бы решением zBear спасибо! нашёл решение, функция transceive обрабатывается в on-error, будет "пинговалкой" Код: :local sensorData :local sensorError :do { :set sensorData [/iot modbus transceive address=3 function=3 values=3,3,0,1 as-value] } on-error={ :set sensorError "not found" } :if ([:typeof $sensorError]="nothing") do={ :set sensorData [/iot modbus read-holding-registers slave-id=3 num-regs=8 reg-addr=0 as-value once] :put ($sensorData->"values") } else={ :put $sensorError } :put "finish" | строка "/iot modbus transceive address=3 function=3 values=3,3,0,1" в моём случае даёт сообщение о неверном адресе в переданных данных, она вообще пишет, что я вызвал функцию 131, хотя явно указана 3 (read holding registers), но завершается без ошибки, если устройство доступно. а при выключенном устройстве даёт ошибку, которая успешно обрабатывается в on-error, что и требуется. | Всего записей: 219 | Зарегистр. 19-01-2008 | Отправлено: 09:19 05-01-2024 | Исправлено: DenSyo, 13:22 05-01-2024 |
|