Siemens — Команды для обмена данными

Набор команд S7–200 Глава 6 6. Любой символ: Команда приема может быть сконфигурирована так, чтобы немедленно принимать все символы и помещать их в буфер сообщения. Это особый случай обнаружения бездействия линии. В этом случае время простоя линии (SMW90 или SMW190) устанавливается в ноль. Это заставляет команду приема начинать прием символов немедленно после начала исполнения. Настройка: il = 1, sc = 0, bk = 0, SMW90/SMW190 = 0, SMB88/SMB188 = не имеют значения Если в качестве начала сообщения используется любой символ, то можно использовать таймер сообщений для контроля времени приема сообщения.

Это полезно в случаях, когда для реализации основной части протокола используется свободно программируемый обмен данными, и требуется контроль времени на случай, если в течение определенного промежутка времени не будет получено ответа от slave-устройства. Таймер сообщения запускается, когда выполняется команда приема, так как время простоя линии было установлено в ноль. Таймер сообщения заканчивает отсчет времени и завершает функцию приема сообщений, если не выполнено какое-нибудь другое условие окончания приема. Настройка:

il = 1, sc = 0, bk = 0, SMW90/SMW190 = 0, SMB88/SMB188 = не имеют значения, c/m = 1, tmr = 1, SMW92 = выдержка времени таймера в мс Команда приема поддерживает несколько способов завершения сообщения. Сообщение может быть завершено одним или комбинацией нескольких из следующих условий: 1. Обнаружение конечного символа: Конечный символ – это любой символ, используемый для обозначения конца сообщения. После обнаружения начального условия команда приема проверяет каждый полученный символ на совпадение с конечным символом. Если получен конечный символ, то он помещается в буфер сообщения, и прием завершается.

Обычно обнаружение конечного символа используется в протоколах ASCII, где каждое сообщение завершается определенным символом. Для завершения сообщения обнаружение конечного символа можно использовать в сочетании с межсимвольным таймером, таймером сообщения или обнаружением достижения максимального количества символов. Настройка: ec = 1, SMB89/SMB189 = конечный символ 2. Межсимвольный таймер: Время между символами – это промежуток времени от конца одного символа (стопового бита) до конца следующего символа (стопового бита). Если время между символами (включая второй символ) превышает количество миллисекунд, указанное в SMW92 или SMW192, то функция приема сообщений завершает работу.

Межсимвольный таймер перезапускается после приема каждого символа. См. рис. 6–12. Межсимвольный таймер можно использовать для завершения сообщения в протоколах, не имеющих специального символа конца сообщения. Этот таймер должен быть установлен на значение, большее, чем время передачи одного символа при выбранной скорости передачи, так как этот таймер всегда включает в себя время, необходимое для получения полного символа (начальный бит, биты данных, биты контроля четности и завершения). Для завершения сообщения межсимвольный таймер можно использовать в сочетании с обнаружением конечного символа и обнаружением достижения максимального количества символов. Настройка:

c/m = 0, tmr = 1, SMW92/SMW192 = выдержка времени в мс Символы Символы Перезапускает межсимвольный таймер Выдержка времени межсимвольного таймера истекла: сообщение завершается, и генерируется прерывание по приему сообщения Рис. 6–12. Использование межсимвольного таймера для завершения команды приема 93