Мне надо читать данные из контроллера по modbus RTU в два два приема, т.к. одной транзакцией можно считать максимум 255 байт. Плюс запись. Как это сделать?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Посмотрите "Привязка источника MODBUS чтения или записи" в описании канала CALL.ChGroupReq.
Posted by Андрей Тольятти (Участник № / Member № 6191) on :
Спасибо
Posted by Андрей Тольятти (Участник № / Member № 6191) on :
Как контролировать качество связи (timeout, disconnect)?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
В Modbus RTU нет disconnect.
При задержке ответа по таймауту в каналах обмена выставляется недостоверность. В соответствующем канале диагностики выставляется соответствующий код ошибки (9 или 10).
Posted by Андрей Тольятти (Участник № / Member № 6191) on :
1. Подскажите где вписать таймаут для Modbus RTU, нашёл в справке только для Modbus TCP. 2. В канале @e_Modbus при обрыве связи появляется "9". Это и есть код ошибки? При возобновлении связи как сбросить код ошибки?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1. Таймаут при последовательном интерфейсе задается в настрйоках COM-порта.
2. 9 - это код ошибки по таймауту. Сброс осуществляется посылкой "0" в канал OUT, связанный с @e_Modbus-переменной типа OUT.
Posted by Андрей Тольятти (Участник № / Member № 6191) on :
Часто появляется код ошибки "8". Это "неверное число символов"? Сбрасывать в 0 обязательно для нормальной работы связи?
Какие ещё могут быть ошибки связи? (где прочитать?) В справке в разделе приложения есть коды диагностируемых ошибок.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Диагностический канал надо сбрасывать после проведенного Вами анализа ошибки и принятия адекватных мер.
Ссылка на "Коды диагностируемых ошибок" правомерна. При появлении другого кода ошибки можно апеллировать к этому списку.
Posted by Андрей Тольятти (Участник № / Member № 6191) on :
В диагностике связи прописал эти коды ошибок. При переносе на другой ПК (заказчику) сложности возникли.
Появились коды 520, 521, 525. То есть в нулевом байте те же 8 и 9, а в первом значение 2 появилось. Похоже это указание на порт, стал COM3 (а был COM1 - 0). Или это что-то другое? Хотелось бы узнавать про коды ошибок связи раньше чем я увижу их у заказчика.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Вы правы, байт 1 данной переменной типа INPUT индицирует номер COM-порта, байт 0 –- код ошибки при обмене.