06_InstructionSet_r (1087186), страница 5
Текст из файла (страница 5)
Если вы выбираете режим свободно программируемого обмена данными, товаша программа управляет работой коммуникационного порта путем использованияпрерываний приема, прерываний передачи, команды передачи и команды приема. Врежиме свободно программируемого обмена данными протокол связи полностьюуправляется программой, представленной в виде цепной логической схемы (LAD). Длявыбора скорости передачи и способа контроля четности используются SMB30 (для порта 0)и SMB130 (для порта 1, если ваш S7–200 имеет два порта).Режим свободно программируемого обмена данными блокируется, и восстанавливаетсяобычная связь (например, доступ через устройство программирования), когда S7–200находится в состоянии STOP.В простейшем случае вы можете послать сообщение на принтер или дисплей, используятолько команду передачи (XMT).
К другим примерам относятся связь с устройством длясчитывания штрихового кода, весами или сварочным аппаратом. В каждом случае выдолжны написать программу для поддержки протокола, используемого устройством, скоторым S7-200 поддерживает связь при нахождении в режиме свободнопрограммируемого обмена данными.Свободно программируемый обмен данными возможен только тогда, когда S7–200находится в режиме RUN. Разблокируйте режим свободно программируемого обменаданными установкой значения 01 в поле выбора протокола SMB30 (порт 0) или SMB130(порт 1).
В режиме свободно программируемого обмена данными связь с устройствомпрограммирования невозможна.СоветРежимом свободно программируемого обмена данными можно управлять с помощьюбита специальной памяти SM0.7, который отражает текущее положение переключателярежимов работы. Если SM0.7 равен 0, то переключатель находится в положении TERM;если SM0.7 = 1, то переключатель режимов работы находится в положении RUN. Если выразблокируете режим свободно программируемого обмена данными только тогда, когдапереключатель находится в положении RUN, то вы можете использовать устройствопрограммирования для контроля и управления работой S7–200 путем переводапереключателя в любое другое положение.88Набор команд S7–200Глава 6Переход от обмена данными через PPI к свободно программируемомуобмену даннымиSMB30 и SMB130 конфигурируют коммуникационные порты 0 и 1 соответственно длясвободно программируемого обмена данными, предоставляя возможность выбораскорости передачи, способа контроля четности и количества битов данных.
На рис. 6–8описан управляющий байт для свободно программируемого обмена данными. Для всехконфигураций генерируется один стоповый бит.bbb: Скорость передачи для свободно программируемогообмена данными000 = 38 400 Бодp p d b b b m m001 = 19 200 БодSMB30 =порт 0010 = 9 600 Бод011 = 4 800 БодSMB130 =порт 1100 = 2 400 Бодpp: Выбор способа проверки101 = 1 200 Бодчетности11110 = 115,2 КБодТребует CPU S7-20000 = нет проверки четности1версии 1.2 или выше111=57,6КБод01 = проверка на четность10 = нет проверки четности mm: Выбор протокола00 =PPI/подчиненный режим11 = проверка на нечетность01 =Протокол свободно программируемого обменаd:Количество битов данных наданнымисимвол10 =PPI/привилегированный режим0 = 8 битов на символ11 =Резерв (по умолчанию PPI/подчиненный режим)1 = 7 битов на символMSB7LSB0Рис. 6–8. Управляющий байт для свободно программируемого обмена данными (SMB30 или SMB130)Передача данныхКоманда передачи дает возможность передать буфер, состоящий из одного или несколькихсимволов (не более 255).ЗначениеНа рис.
6–9 показан формат буфераMESSAGEсчетчикапередачи.Символы сообщенияПосле того как передан последнийсимвол буфера, S7–200 генерируетКоличество байтов, подлежащихпрерывание (прерывающее событие 9передаче (байтовый массив)для порта 0 и прерывающее событие26 для порта 1), если событиюРис. 6–9. Формат буфера передачи«Передача завершена» поставлена всоответствие программа обработкипрерывания.Вы можете производить передачу и без использования прерываний (например, посылаясообщение на принтер), контролируя SM4.5 или SM4.6, сигнализирующих о завершениипередачи.Команда передачи может быть использована для генерирования условия паузы (BREAK)путем установки количества символов в ноль, а затем исполнения команды передачи.
Этогенерирует условие паузы в строке для передачи 16 битов с текущей скоростью передачи.Передача паузы обрабатывается так же, как передача любого другого сообщения, причемпри завершении передачи паузы генерируется прерывание, а SM4.5 или SM4.6отображают текущее состояние передачи.Прием данныхКоманда приема дает возможность принять буфер, состоящий из одного или несколькихсимволов (не более 255).Конечн.Значение Начальн.На рис. 6–10 показан формат буфераESSAGEсимволсчетчика символ Mприема.Символы сообщенияПосле того как принят последнийсимвол буфера, генерируетсяКоличество принятых символов(байтовый массив)прерывание (прерывающее событие23 для порта 0 и прерывающееРис. 6–10.
Формат буфера приемасобытие 24 для порта 1), еслисобытию «Прием сообщениязавершен» поставлена в соответствиепрограмма обработки прерывания.89Программируемый контроллер S7-200. Системное руководствоВы можете принимать сообщения и без использования прерываний, контролируя SMB86(порт 0) или SMB186 (порт 1). Этот байт не равен нулю, если приема не активен илизавершен. Он равен нулю, когда происходит прием.Как показано в таблице 6–12, команда приема позволяет выбирать условия начала иокончания сообщения с помощью SMB86 − SMB94 для порта 0 и SMB186 − SMB194 дляпорта 1.СоветФункция приема сообщений автоматически завершается при превышении количествасимволов или ошибке четности. Вы должны определить условие начала и условие конца(максимальное количество символов), чтобы функция приема сообщений могла работать.Таблица 6–13.
Байты буфера приема (от SMB86 до SMB94 и от SM1B86 до SMB194)Порт 0Порт 1SMB86SMB186ОписаниеБайт состояния приемасообщенияMSB7nn:r:e:t:c:p:SMB87SMB187LSB0re00tcp1 = Функция приема сообщений завершена: пользователь дал команду надеактивизацию.1 = Функция приема сообщений завершена: ошибка во входном параметре илиотсутствует условие начала или конца1 = Принят символ конца1 = Функция приема сообщений завершена: истекло время1 = Функция приема сообщений завершена: достигнуто максимальноеколичество символов1 = Функция приема сообщений завершена: ошибка четностиБайт управления приемомсообщенияMSB7enLSB0scecilc/mtmrbk0en:0 =функция приема сообщений заблокирована.1 = функция приема сообщений разблокирована.Бит разблокировки/блокировки приема сообщений проверяется прикаждом исполнении команды RCV.sc:0 = игнорировать SMB88 или SMB188.1 = использовать значение SMB88 или SMB188 для обнаруженияначала сообщения.ec:0 = игнорировать SMB89 или SMB189.1 = использовать значение SMB89 или SMB189 для обнаруженияконца сообщения.il:0 = игнорировать SMW90 или SMW190.1 = использовать значение SMW90 или SMW190 для обнаружениябездействия линииc/m: 0 = таймер измеряет время между символами1 = таймер измеряет время сообщения.tmr: 0 = игнорировать SMW92 или SMW192.1 = завершить прием, если превышен интервал времени, указанныйв SMW92 или SMW192 .bk:0 = игнорировать условия паузы1 = использовать условие паузы как начало обнаружениясообщения.90SMB88SMB188Символ начала сообщения.SMB89SMB189Символ конца сообщения.SMW90SMW190Время бездействия линии в миллисекундах.
Первый символ, принятый поистечении времени бездействия линии, является началом новогосообщения.SMW92SMW192Значение контроля времени при измерении времени между символами ивремени сообщения в миллисекундах. Если этот интервал времени истек,то прием сообщения завершается.SMB94SMB194Максимальное количество символов, которое должно быть принято (от 1до 255 байтов).
Этот диапазон должен быть установлен на ожидаемыймаксимальный размер буфера, даже если завершение сообщения спомощью подсчета символов не используется.Набор команд S7–200Глава 6Условия начала и окончания сообщения для команды приемаДля определения условий начала и окончания сообщения команда приема используетбиты байта управления приемом сообщений (SMB87 или SMB187).СоветЕсли во время выполнения команды приема коммуникационный порт занят другимиустройствами, то функция приема сообщений может начать прием символа в серединеэтого символа, что может привести к ошибке при контроле четности и завершениюприема сообщения.
Если проверка четности не активизирована, то принятое сообщениеможет содержать неправильные символы. Эта ситуация может возникнуть, если вкачестве начального условия назначен определенный начальный символ или любойсимвол, как это описано ниже в пунктах 2 и 6.Команда приема поддерживает несколько условий начала сообщения. Если указанноевами условие начала приема содержит паузу или распознавание бездействия линия, тоописанной выше проблемы удается избежать, принуждая функцию приема сообщенийсинхронизировать начало сообщения с началом символа, прежде чем символ будетпомещен в буфер сообщений.Команда приема поддерживает несколько условий начала сообщения:1.Распознавание бездействия линии: Условие бездействия линии определяется каквремя простоя или перерыва в работе линии передачи.
Прием начинается, еслилиния связи находилась в простое или имела перерыв в работе в течение некоторогоколичества миллисекунд, указанного в SMW90 или SMW190. Когда в вашейпрограмме выполняется команда приема, то функция приема сообщений инициируетпоиск условия бездействия линии. Если прием каких-либо символов происходит доистечения времени простоя линии, то функция приема сообщений игнорирует этисимволы и вновь запускает таймер простоя линия с временем, полученным изSMW90 или SMW190. См.
рис. 6–11. По истечении времени простоя линии функцияприема сообщений сохраняет все последующие полученные символы в буфересообщений.Время простоя линии всегда должно быть больше, чем время, необходимое дляпередачи одного символа (начальный бит, биты данных, биты контроля четности изавершения) при заданной скорости передачи. Типичным значением для временипростоя линии является время, необходимое для передачи трех символов призаданной скорости передачи.Распознавание бездействия линии используется в качестве начального условия длядвоичных протоколов, для протоколов, не имеющих определенного начальногосимвола, или в случае, когда протокол требует минимального времени междусообщениями.Настройка:il = 1, sc = 0, bk = 0, SMW90/SMW190 = простой линии в мсСимволыСимволыСнова запускает время простояКоманда приема выполняется:запускается отсчет времени простояПервый символ, помещаемый вбуфер сообщенийОбнаружено время простоя:запускается функция приема сообщенийРис.
6–11. Запуск команды приема с распознаванием бездействия линии91Программируемый контроллер S7-200. Системное руководство2.Распознавание начального символа: начальный символ – это любой символ,используемый в качестве первого символа сообщения. Сообщение начинается, когдапринимается начальный символ, указанный в SMB88 или SMB188. Функция приемасообщений хранит начальный символ в буфере приема в качестве первого символасообщения.