Программируемый контроллер S7-200. Системное руководство 3. Таймер сообщения: Таймер сообщения завершает сообщение через определенное время после его начала. Таймер сообщения запускается, как только выполнено начальное условие или условия для функции приема сообщений. Таймер сообщения завершает отсчет времени по истечении количества миллисекунд, указанных в SMW92 или SMW192. См. рис. 6–13. Обычно таймер сообщения используется, если устройства связи не могут гарантировать, что между символами не будет временных разрывов, или при работе через модемы. Для модемов можно использовать таймер сообщения, чтобы задать максимально допустимое время для приема сообщения после его начала.
Типичным значением для таймера сообщения является полуторакратное время, необходимое для приема наиболее длинного возможного сообщения при выбранной скорости передачи. Для завершения сообщения таймер сообщения можно использовать в сочетании с обнаружением конечного символа и обнаружением достижения максимального количества символов. Настройка: c/m = 1, tmr = 1, SMW92/SMW192 = выдержка времени в мс Символы Символы Начло сообщения: Запускается таймер сообщений Выдержка времени таймера сообщений истекла: сообщение завершается, и генерируется прерывание по приему сообщения Рис. 6–13. Использование таймера сообщений для завершения команды приема 4. Значение для наибольшего числа символов:
Команде приема можно сообщить максимальное количество символов, которое должно быть принято (SMB94 или SMB194). Если это значение достигнуто или превышено, то функция приема сообщений завершает работу. Команда приема требует, чтобы пользователь определил максимальное количество символов, даже если оно специально не используется в качестве условия завершения. Это необходимо потому, что команде приема необходимо знать максимальный размер принимаемого сообщения, чтобы данные пользователя, помещенные после буфера сообщений, не были перезаписаны. Максимальное количество символов может использоваться для завершения сообщений в протоколах, в которых длина сообщений известна и всегда одинакова.
Максимальное количество символов всегда используется в сочетании с обнаружением конечного символа, межсимвольного таймера или таймера сообщения. 5. Ошибки, обнаруженные при проверке четности: Функция приема автоматически завершает работу, если аппаратура сообщает об ошибке четности в принятом символе. Ошибки при проверке четности возможны только в том случае, если в SMB30 или SMB130 активизирована проверка четности. Эту функцию невозможно выключить. 6. Завершение по инициативе пользователя: Программа пользователя может завершить функцию приема сообщений, выполняя другую функцию приема сообщений и установив в ноль бит деблокировки (EN) в SMB87 или SMB187.
Это приводит к немедленному завершению функции приема сообщений. Прием данных, управляемый прерываниями Для достижения полной гибкости в поддержке протоколов вы также можете принимать данные под управлением прерываний. Каждый принимаемый символ генерирует прерывание. Принятый символ помещается в SMB2, а результат контроля четности (если активизирован) помещается в SM3.0 непосредственно перед исполнением программы обработки прерывания, назначенной событию «Символ принят». SMB2 – это буфер для принятого символа при свободно программируемом обмене данными.
Каждый символ, принятый в режиме свободно программируемого обмена данными, помещается по этому адресу для облегчения доступа к нему из программы пользователя. SMB3 используется для режима свободно программируемого обмена данными и содержит бит ошибки четности, который устанавливается, когда в принятом символе обнаруживается ошибка четности. Все остальные биты этого байта зарезервированы. Используйте этот бит для отклонения сообщения или для генерирования отрицательного квитирования этого сообщения. Если управление с помощью прерываний используется при высоких скоростях передачи (от 38,4 до 115,2 Кбод), то время между прерываниями очень мало.
Например, прерывание для скорости 38,4 Кбод составляет 260 микросекунд, для скорости 57,6 Кбод − 173 микросекунды, а для 115,2 Кбод − 86 микросекунд. Во избежание потери символов обеспечьте краткость программ обработки прерываний или используйте команду приема. 94