Интернет магазин китайских планшетных компьютеров |
||||
Компьютеры - Modbus - Контроль ошибок в протоколе Modbus RTU25 апреля 2011Оглавление: 1. Modbus 2. Стандарт MODBUS 3. Введение 4. Категории кодов функций 5. Стандартные функции протокола Modbus 6. Контроль ошибок в протоколе Modbus RTU Во время обмена данными могут возникать ошибки двух типов:
Ошибки первого типа обнаруживаются при помощи фреймов символов, контроля чётности и циклической контрольной суммы CRC-16-IBM. При этом младший байт передается первым, в отличие от байтов адреса и значения регистра в PDU RTU фреймВ RTU режиме сообщение должно начинаться и заканчиваться интервалом тишины временем передачи не менее 3,5 символов при данной скорости в сети. Первым полем затем передаётся адрес устройства. Вслед за последним передаваемым символом также следует интервал тишины продолжительностью не менее 3,5 символов. Новое сообщение может начинаться после этого интервала. Фрейм сообщения передаётся непрерывно. Если интервал тишины продолжительностью 1,5 возник во время передачи фрейма, принимающее устройство должно игнорировать этот фрейм как неполный. Таким образом, новое сообщение должно начинаться не раньше 3,5 интервала, так как в этом случае устанавливается ошибка. Немного об интервалах: при скорости 9600 и 11 битах в кадре: 3.5 * 11 / 9600 = 0,00401041, то есть более 4 мс; 1.5 * 11 / 9600 = 0,00171875, то есть более 1 мс. Для скоростей более 19200 бод допускается использовать интервалы 1,75 и 0,75 мс соответственно. Логические ошибкиДля сообщений об ошибках второго типа протокол Modbus RTU предусматривает, что устройства могут отсылать ответы, свидетельствующие об ошибочной ситуации. Признаком того, что ответ содержит сообщение об ошибке, является установленный старший бит кода команды. Пример кадра при выявлении ошибки ведомым устройством, в ответ на запрос приведён в. 1. Если Slave принимает корректный запрос и может его нормально обработать, то возвращает нормальный ответ. 2. Если Slave не принимает какого-либо значения, никакого ответа не отправляется. Master диагностирует ошибку по тайм-ауту. 3. Если Slave принимает запрос, но обнаруживает ошибку, никакого ответа не отправляется. Master диагностирует ошибку по тайм-ауту. 4. Если Slave принимает запрос, но не может его обработать, отправляется ответ содержащий в себе данные об ошибке.
Стандартные коды ошибок
Просмотров: 11448
|