06_InstructionSet_r (1087186), страница 13
Текст из файла (страница 13)
Новое текущее и новое предустановленное значение HSC0, HSC1, HSC2, HSC3,HSC4 иЗагружаемое значениеHSC0HSC1HSC2HSC3HSC4HSC5Новое текущее значениеSMD38SMD48SMD58SMD138SMD148SMD158Новое предустановленноезначениеSMD42SMD52SMD62SMD142SMD152SMD162Таблица 6–30. Текущие значения HSC0, HSC1, HSC2, HSC3, HSC4 и HSC5ЗначениеHSC0HSC1HSC2HSC3HSC4HSC5Текущее значениеHC0HC1HC2HC3HC4HC5127Программируемый контроллер S7-200. Системное руководствоАдресация скоростных счетчиков (HC)Для доступа к счетному значению скоростного счетчика указывается адрес этого счетчика спомощью типа памяти (HC) и номера счетчика (например, HC0).
Текущее значениескоростного счетчика доступно только для чтения и может быть адресовано только какдвойное слово (32 бита), как показано на рис. 6–28.MSBHC 2LSB031Номер скоростного счетчикаИдентификатор области(скоростной счетчик)Младший байтСтарший байтБайт 3Байт 2Байт 1Байт 0Рис. 6–28. Доступ к текущему значению скоростного счетчикаНазначение прерыванийВсе режимы счетчиков поддерживают прерывание по равенству текущего значения HSCзагруженному предустановленному значению.
Режимы счетчиков, использующие входвнешнего сброса, поддерживают прерывание по активизации внешнего сброса. Всережимы счетчиков, кроме режимов 0, 1 и 2, поддерживают прерывание по изменениюнаправления счета. Каждое из этих условий возникновения прерываний может бытьзаблокировано или разблокировано по отдельности.
Полностью использованиепрерываний обсуждается в разделе о командах обмена данными и прерывания.ЗамечаниеЕсли вы попытаетесь загрузить новое текущее значение или заблокировать, а затемснова разблокировать скоростной счетчик из программы обработки прерываний длявнешнего сброса, то может произойти фатальная ошибка.Байт состоянияКаждому скоростному счетчику поставлен в соответствие байт состояния,предоставляющий в распоряжение биты памяти, указывающие текущее направлениесчета, а также информацию о том, действительно ли текущее значение больше или равнопредустановленному.
Таблица 6–31 определяет эти биты состояния для каждогоскоростного счетчика.СоветБиты состояния действительны только во время исполнения программы обработкипрерывания скоростного счетчика. Цель контроля состояния скоростного счетчика состоитв том, чтобы разблокировать прерывания для событий, оказывающих воздействие навыполняемую операцию.Таблица 6–31. Биты состояния для HSC0, HSC1, HSC2, HSC3, HSC4 и HSC5128HSC0HSC1HSC2HSC3SM36.0SM46.0SM56.0SM136.0 SM146.0 SM156.0 Не используютсяHSC4HSC5ОписаниеSM36.1SM46.1SM56.1SM136.1 SM146.1 SM156.1 Не используютсяSM36.2SM46.2SM56.2SM136.2 SM146.2 SM156.2 Не используютсяSM36.3SM46.3SM56.3SM136.3 SM146.3 SM156.3 Не используютсяSM36.4SM46.4SM56.4SM136.4 SM146.4 SM156.4 Не используютсяSM36.5SM46.5SM56.5SM136.5 SM146.5 SM156.5 Бит состояния текущего направлениясчета:0 = обратный счет1 = прямой счетSM36.6SM46.6SM56.6SM136.6 SM146.6 SM156.6 Бит состояния, указывающий, равно литекущее значение предустановленному:0 = не равно1 = равноSM36.7SM46.7SM56.7SM136.7 SM146.7 SM156.7 Бит состояния, указывающий, большели текущее значение, чемпредустановленное:0 = меньше или равно1 = большеНабор команд S7–200Глава 6Примеры инициализирующих последовательностей дляскоростных счетчиковВ следующих описаниях инициализации и последовательности обработки в качествепримера используется HSC1.
При описании инициализаций предполагается, что S7–200только что переведен в режим RUN, и поэтому бит памяти первого цикла установлен. Еслиэто не так, помните, что команда HDEF может быть выполнена только один раз длякаждого скоростного счетчика после вхождения в режим RUN. Выполнение HDEF дляскоростного счетчика во второй раз приводит к ошибке выполнения и не изменяетнастройку счетчика по сравнению с тем, как она была выполнена для данного счетчика припервом выполнении HDEF.СоветХотя приведенные далее последовательности показывают, как изменить направление,текущее и предустановленное значение по отдельности, вы можете изменить все этинастройки или любую их комбинацию в той же последовательности, устанавливаянадлежащим образом SMB47, а затем выполняя команду HSC.Инициализация режимов 0, 1 и 2Следующие шаги описывают, как инициализировать HSC1 в качестве однофазногореверсивного счетчика с внутренним управлением направлением счета (режим 0, 1 или 2).1.Используйте бит памяти первого цикла для вызова подпрограммы, в которой будетвыполняться операция по инициализации.
Когда вы используете вызовподпрограммы, следующие циклы эту подпрограмму не вызывают, что сокращаетвремя цикла и делает программу более структурированной.2.В подпрограмме инициализации загрузите SMB47 в соответствии с желаемойоперацией управления. Например:SMB47 = 16#F8дает следующие результаты:Разблокирует счетчикЗаписывает новое текущее значениеЗаписывает новое предустановленное значениеУстанавливает прямое направление счетаНастраивает входы пуска и сброса на активность привысоком уровне сигнала3.Выполните команду HDEF с входом HSC , установленным в 1, и входом MODE[режим], установленным в 0 при отсутствии внешнего сброса и пуска, 1 для внешнегосброса без пуска или 2 для внешнего сброса и пуска.4.Загрузите SMD48 (двойное слово) желаемым текущим значением (загрузите 0, чтобыего очистить).5.Загрузите SMD52 (двойное слово) желаемым предустановленным значением.6.Чтобы распознавать равенство текущего и предустановленного значений,запрограммируйте прерывание, поставив в соответствие программе обработкипрерывания прерывающее событие CV = PV (событие 13).
Подробную информациюоб обработке прерываний вы найдете в разделе, посвященном командампрерывания.7.Чтобы распознавать внешний сброс, запрограммируйте прерывание, поставив всоответствие программе обработки прерывания прерывающее событие «внешнийсброс» (external reset) (событие 15).8.Для разблокировки прерываний выполните команду разрешения всех прерываний(ENI).9.Выполните команду HSC, чтобы S7–200 запрограммировал HSC1.10. Выйдите из подпрограммы.129Программируемый контроллер S7-200.
Системное руководствоИнициализация режимов 3, 4 и 5Следующие шаги описывают, как инициализировать HSC1 в качестве однофазногореверсивного счетчика с внешним управлением направлением счета (режим 3, 4 или 5):1. Используйте бит памяти первого цикла для вызова подпрограммы, в которой будетвыполняться операция по инициализации. Когда вы используете вызовподпрограммы, следующие циклы эту подпрограмму не вызывают, что сокращаетвремя цикла и делает программу более структурированной.2. В подпрограмме инициализации загрузите SMB47 в соответствии с желаемойоперацией управления. Например:SMB47 = 16#F8 дает следующие результаты:Разблокирует счетчикЗаписывает новое текущее значениеЗаписывает новое предустановленное значениеУстанавливает начальное направление счета HSC на прямойсчетНастраивает входы пуска и сброса на активность привысоком уровне сигнала3.
Выполните команду HDEF с входом HSC , установленным в 1, и входом MODE[режим], установленным одним из следующих способов: 3 при отсутствии внешнегосброса и пуска, 4 для внешнего сброса без пуска или 5 для внешнего сброса и пуска.4. Загрузите SMD48 (двойное слово) желаемым текущим значением (загрузите 0, чтобыего очистить).5. Загрузите SMD52 (двойное слово) желаемым предустановленным значением.6. Чтобы распознать равенство текущего и предустановленного значений,запрограммируйте прерывание, поставив в соответствие программе обработкипрерывания прерывающее событие CV = PV (событие 13). Подробную информациюоб обработке прерываний вы найдете в разделе, посвященном командампрерывания.7. Чтобы распознавать изменения направления счета, запрограммируйте прерывание,поставив в соответствие программе обработки прерывания прерывающее событие«изменение направления» (direction changed) (событие 14).8.
Чтобы распознавать внешний сброс, запрограммируйте прерывание, поставив всоответствие программе обработки прерывания прерывающее событие «внешнийсброс» (external reset) (событие 15).9. Для разблокировки прерываний выполните команду разрешения всех прерываний(ENI).10. Выполните команду HSC, чтобы S7–200 запрограммировал HSC1.11. Выйдите из подпрограммы.Инициализация режимов 6, 7 и 8Следующие шаги описывают, как инициализировать HSC1 в качестве двухфазногореверсивного счетчика с датчиками тактовых импульсов прямого и обратного направлениясчета (режим 6, 7 или 8):1.
Используйте бит памяти первого цикла для вызова подпрограммы, в которой будетвыполняться операция по инициализации. Когда вы используете вызовподпрограммы, следующие циклы эту подпрограмму не вызывают, что сокращаетвремя цикла и делает программу более структурированной.2. В подпрограмме инициализации загрузите SMB47 в соответствии с желаемойоперацией управления. Например:SMB47 = 16#F8 дает следующие результаты:Разблокирует счетчикЗаписывает новое текущее значениеЗаписывает новое предустановленное значениеУстанавливает начальное направление счета HSC на прямой счетНастраивает входы пуска и сброса на активность при высокомуровне сигнала3.
Выполните команду HDEF с входом HSC, установленным в 1, и входом MODE[режим], установленным в одно из следующих состояний: 6 при отсутствии внешнегосброса и пуска, 7 для внешнего сброса без пуска или 8 для внешнего сброса и пуска.4. Загрузите SMD48 (двойное слово) желаемым текущим значением (загрузите 0, чтобыего очистить).130Набор команд S7–200Глава 65.6.Загрузите SMD52 (двойное слово) желаемым предустановленным значением.Чтобы распознать равенство текущего и предустановленного значений,запрограммируйте прерывание, поставив в соответствие программе обработкипрерывания прерывающее событие CV = PV (событие 13). См. раздел опрерываниях.7.
Чтобы распознавать изменения направления счета, запрограммируйте прерывание,поставив в соответствие программе обработки прерывания прерывающее событие«изменение направления» (direction changed) (событие 14).8. Чтобы распознавать внешний сброс, запрограммируйте прерывание, поставив всоответствие программе обработки прерывания прерывающее событие «внешнийсброс» (external reset) (событие 15).9. Для разблокировки прерываний выполните команду разрешения всех прерываний(ENI).10.
Выполните команду HSC, чтобы S7–200 запрограммировал HSC1.11. Выйдите из подпрограммы.Инициализация режимов 9, 10 и 11Следующие шаги описывают, как инициализировать HSC1 в качестве квадратурногосчетчика с фазами A и B (режим 9, 10 или 11):1. Используйте бит памяти первого цикла для вызова подпрограммы, в которой будетвыполняться операция по инициализации. Когда вы используете вызовподпрограммы, следующие циклы эту подпрограмму не вызывают, что сокращаетвремя цикла и делает программу более структурированной.2. В подпрограмме инициализации загрузите SMB47 в соответствии с желаемойоперацией управления.Пример (однократная скорость счета):SMB47 = 16#FC дает следующие результаты:Разблокирует счетчикЗаписывает новое текущее значениеЗаписывает новое предустановленное значениеУстанавливает начальное направление счета HSC на прямой счетНастраивает входы пуска и сброса на активность при высокомуровне сигналаПример (четырехкратная скорость счета):SMB47 = 16#F8 дает следующие результаты:Разблокирует счетчикЗаписывает новое текущее значениеЗаписывает новое предустановленное значениеУстанавливает начальное направление счета HSC на прямой счетНастраивает входы пуска и сброса на активность при высокомуровне сигнала3.