Ответ: Заказчик просит полный модбас
Пардон, что вмешиваюсь в интеллектуальную беседу уважаемых донов, но тем не менее хочу немного рассказать про популярный протокол фирмы Модикон, известный как Модбас.
Этот протокол создавался в те давние времена, когда далеко не в каждом даже крутом программируемом контроллере использовались микропроцессоры. Поэтому коммуникационный протокол разрабатывался с учетом того, что обрабатываться он будет во-первых, не нагружая основной процессор, во-вторых, не программно, а аппаратно. Кстати в то время даже основной процессор чаще всего представлял собой автомат состояний, собранный на горсти мелкосхем низкой степени интеграции. А если и стоял микропроцессор, то очень тормозной, всего несколько сотен тысяч операций в секунду...
Ну не было тогда возможности контролировать выход адресов за диапазон. Аппараные автоматы это слишком сильно усложняло, а мелкопроцессоры не успевали выполнять более важные задачи. Была возможность выставить на шину адреса значение из коммуникационного пакета и записать/прочитать значение из памяти во время нужной фазы тактового генератора. Если в контроллере нет платы памяти с таким адресом, то прочитаются нули. Или единицы, смотря какая память и куда притянута шина данных. Так что формировать ошибку выхода адреса за диапазон формировать было просто некому.
А потом протокол в таком виде прижился и менять его не стали...
|