Руководство по программированию 6 profinet 7 Двухточечная связь (PointtoPoint, PtP) 8
Скачать 3.76 Mb.
|
Указание Команды обнаружения фронтов анализируют значения входа и бита памяти при каждом исполнении команды, включая первое исполнение. Вы должны учитывать в своей программе начальные состояния входа и бит памяти, чтобы допускать или не допускать распознавание фронта в первом цикле. Так как этот бит памяти должен сохраняться от одного исполнения команды до другого, то для каждой команды обнаружения фронта вы должны использовать уникальный бит, и вы не должны использовать этот бит ни в каком другом месте своей программы. Вам также следует избегать использования временной памяти, а также памяти, на которую могут оказывать влияние другие системные функции, например, обновление входов и выходов. Используйте для назначения бита M_BIT только битовую (M) память, глобальные DB или статическую память (в экземплярном DB). Руководство по программированию 6.1 Основные команды Программируемый контроллер S7-1200 112 Системное руководство, 11/2009, A5E02669003-02 6.1.2 Таймеры С помощью таймерных команд вы можете создавать программируемые запаздывания: ● TP: Импульсный таймер генерирует импульс заданной длительности. ● TON: Выход Q таймера с запаздыванием включения устанавливается в состояние ВКЛЮЧЕНО по истечении заранее заданного времени. ● TOF: Выход Q таймера с запаздыванием выключения устанавливается в состояние ВЫКЛЮЧЕНО по истечении заранее заданного времени. ● TONR: Выход запоминающего таймера с запаздыванием включения устанавливается в состояние ВКЛЮЧЕНО по истечении заранее заданного времени. Истекшее время накапливается в течение нескольких интервалов выдержки таймера, пока вход R не будет использован для сброса истекшего времени. ● RT: Сбрасывает таймер, стирая данные о времени, хранящиеся в заданном экземплярном блоке данных таймера. Каждый таймер использует структуру, хранящуюся в блоке данных, для сохранения данных о времени. Вы назначаете блок данных, когда вы вставляете таймерную команду в редакторе. Когда вы помещаете таймерные команды в функциональном блоке, вы можете выбрать вариант многоэкземплярного блока данных. Имена структур таймеров могут быть различными у различных структур данных, но данные таймеров находятся в одном единственном блоке данных и не требуют отдельного блока данных для каждого таймера. Это уменьшает время обработки и объем памяти данных, необходимой для управления таймерами. Между структурами данных таймеров в совместно используемом многоэкземплярном блоке данных нет взаимодействия. Таймеры TP, TON и TOF имеют одни и те же входные и выходные параметры. Таймер TONR имеет дополнительный параметр R для входа сброса. Создайте свое собственное имя таймера ("Timer name") для обозначения блока данных таймера и описания назначения этого таймера в вашем процессе. "Имя таймера" ----[ RT ]---- Команда RT сбрасывает данные указанного таймера. Параметр Тип данных Описание IN Bool Разблокирующий вход таймера R Bool Сброс с ноль истекшего времени таймера TONR PT Bool Вход предустановленного значения времени Q Bool Выход таймера ET Time Выход истекшего времени Блок данных таймера DB Указывает, какой таймер должен быть сброшен командой RT Руководство по программированию 6.1 Основные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 113 Параметр IN запускает и останавливает таймеры ● Переход с 0 на 1 параметра IN запускает таймеры TP, TON и TONR. ● Переход с 1 на 0 параметра IN запускает таймер TOF. В следующей таблице показано влияние изменений значения в параметрах PT и IN. Таймер Изменения в параметрах PT и IN TP • Изменение PT не оказывает влияния во время работы таймера. • Изменение IN не оказывает влияния во время работы таймера . TON • Изменение PT не оказывает влияния во время работы таймера. • Изменение IN на ЛОЖЬ, когда таймер работает, сбрасывает и останавливает таймер. TOF • Изменение PT не оказывает влияния во время работы таймера. • Изменение IN на значение ИСТИНА, когда таймер работает, сбрасывает и останавливает таймер. TONR • Изменение PT не оказывает влияния во время работы таймера, но оказывает влияние, когда таймер возобновляет работу. • Изменение IN на ЛОЖЬ, когда таймер работает, останавливает таймер, но не сбрасывает его. Изменение IN обратно на значение ИСТИНА заставляет таймер работать, начиная с накопленного значения времени. Руководство по программированию 6.1 Основные команды Программируемый контроллер S7-1200 114 Системное руководство, 11/2009, A5E02669003-02 Значения TIME Значения PT (preset time [предустановленное время]) и ET (elapsed time [истекшее время]) хранятся в памяти как двойные целые со знаком, которые представляют миллисекунды. Тип данных TIME использует идентификатор T# и может быть введен как простая единица времени "T#200ms" или в виде комбинированных единиц времени "T#2s_200ms". Тип данных Размер Допустимые диапазоны значений TIME 32 бита Хранится как от T#-24d_20h_31m_23s_648ms до T#24d_20h_31m_23s_647ms от -2 147 483 648 мс до +2 147 483 647 мс Указание Отрицательный диапазон типа данных TIME, показанный выше, не может быть использован с таймерными командами. Отрицательные значения PT (предустановленное время) при исполнении таймерной команды сбрасываются в ноль. ET (истекшее время) всегда имеет положительное значение. TP: Временная диаграмма Импульс TON: Временная диаграмма Запаздывание включения Руководство по программированию 6.1 Основные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 115 TOF: Временная диаграмма Запаздывание выключения TONR: Временная диаграмма Запаздывание включения с запоминанием Руководство по программированию 6.1 Основные команды Программируемый контроллер S7-1200 116 Системное руководство, 11/2009, A5E02669003-02 6.1.3 Счетчики 6.1.3.1 Счетчики С помощью команд счета вы можете подсчитывать события внутри программы и внешние события в процессе: ● CTU – это суммирующий счетчик. ● CTD – это вычитающий счетчик. ● CTUD – это реверсивный счетчик. Каждый счетчик использует структуру, хранящуюся в блоке данных, для сохранения данных счета. Вы назначаете блок данных, когда вы помещаете счетчик в редактор. Эти команды используют программные счетчики, максимальная скорость счета которых ограничена скоростью исполнения OB, в котором они находятся. OB, в котором размещены эти команды, должен исполняться достаточно часто, чтобы обнаруживать все изменения входов CU или CD. Для более быстрого счета используйте команду CTRL_HSC. Когда вы помещаете команды счета в функциональный блок, вы можете выбрать вариант многоэкземплярного блока данных. Имена структур счетчиков могут быть различными у различных структур данных, но данные счетчиков находятся в одном единственном блоке данных и не требуют отдельного блока данных для каждого счетчика. Это уменьшает время обработки и объем памяти данных, необходимой для счетчиков. Между структурами данных счетчиков в совместно используемом многоэкземплярном блоке данных нет взаимодействия. Выберите тип данных для значений счетчика из ниспадающего списка под именем блока. Создайте свое собственное имя счетчика ("Counter name") для обозначения блока данных счетчика и описания функции этого счетчика в вашем процессе. Руководство по программированию 6.1 Основные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 117 Параметр Тип данных Описание CU, CD Bool Счет вверх или вниз, каждый раз на одну единицу R (CTU, CTUD) Bool Сброс значения счетчика в ноль LOAD (CTD, CTUD) Bool Управление загрузкой для предустановленного значения PV SInt, Int, DInt, USInt, UInt, UDInt Предустановленное значение Q, QU Bool Истина, если CV >= PV QD Bool Истина, если CV <= 0 CV SInt, Int, DInt, USInt, UInt, UDInt Текущее значение счетчика Числовой диапазон значений счетчика зависит от выбранного вами тира данных. Если значение счетчика – целое без знака, то вы можете считать в обратном направлении до нуля, а в прямом направлении до границы диапазона. Если значение счетчика – целое со знаком, вы можете считать в обратном направлении до нижней границы, а в прямом направлении до верхней границы. CTU: CTU увеличивает значение на 1, когда значение параметра CU изменяется с 0 на 1. Если значение параметра CV (текущее значение счетчика) больше или равно значению параметра PV (предустановленное значение счетчика), то выходной параметр счетчика Q = 1. Если значение параметра сброса R изменяется с 0 на 1, то текущее значение счетчика сбрасывается в 0. На следующем рисунке показана временная диаграмма CTU со значением счетчика типа целое без знака (где PV = 3). Руководство по программированию 6.1 Основные команды Программируемый контроллер S7-1200 118 Системное руководство, 11/2009, A5E02669003-02 CTD: CTD уменьшает значение на 1, когда значение параметра CD изменяется с 0 на 1. Если значение параметра CV (текущее значение счетчика) меньше или равно 0, то выходной параметр счетчика Q = 1. Если значение параметра LOAD изменяется с 0 на 1, то значение параметра PV (предустановленное значение) загружается в счетчик как новое CV (текущее значение счетчика). На следующем рисунке показана временная диаграмма CTD со значением счетчика типа целое без знака (где PV = 3). CTUD: CTUD увеличивает или уменьшает значение на 1, когда происходит переход с 0 на 1 соответственно на входе прямого (CU) или обратного (CD) счета. Если значение параметра CV (текущее значение счетчика) больше или равно значению параметра PV (предустановленное значение), то выходной параметр счетчика QU = 1. Если значение параметра CV меньше или равно нулю, то выходной параметр счетчика QD = 1. Если значение параметра LOAD изменяется с 0 на 1, то значение параметра PV (предустановленное значение) загружается в счетчик как новое CV (текущее значение счетчика). Если значение параметра сброса R изменяется с 0 на 1, то текущее значение счетчика сбрасывается в 0. На следующем рисунке показана временная диаграмма CTUD со значением счетчика типа целое без знака (где PV = 4). Руководство по программированию 6.1 Основные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 119 6.1.3.2 Команда CTRL_HSC Команда CTRL_HSC управляет скоростными счетчиками, которые используются для счета событий, происходящих чаще, чем частота исполнения OB. Частота выполнения операций счета командами CTU, CTD и CTUD ограничена частотой исполнения OB, в которых они находятся. Максимальные входные тактовые частоты для HSC вы найдете в технических данных CPU (стр. 335). Типичным использованием скоростных счетчиков является счет импульсов, датчиком скорости вращения в системах управления перемещением. Каждая команда CTRL_HSC использует для сохранения данных структуру, хранящуюся в блоке данных. Вы назначаете блок данных, когда команда CTRL_HSC вставляется в редактор. Создайте свое собственное имя счетчика ("Counter name") для обозначения блока данных счетчика и описания функции этого счетчика в вашем процессе. Параметр Тип параметра Тип данных Описание HSC IN HW_HSC Идентификатор HSC DIR IN Bool 1 = Запросить новое направление CV IN Bool 1 = Запрос на установку нового значения счетчика RV IN Bool 1= Запрос на установку нового эталонного значения PERIOD IN Bool 1 = Запрос на установку нового интервала времени (только при измерении частоты) NEW_DIR IN Int Новое направление: 1= вперед -1= назад NEW_CV IN DInt Новое направление счета NEW_RV IN DInt Новое эталонное значение NEW_PERIOD IN Int Новое значение интервала времени в секундах:0,01; 0,1 или 1 (только при измерении частоты) BUSY OUT Bool Функция занята STATUS OUT Word Код условия исполнения Прежде чем скоростные счетчики можно будет использовать в программе, вы должны их создать в настройках проекта для конфигурации устройств ПЛК. При конфигурировании устройств HSC устанавливаются режимы счета, интерфейсы ввода/вывода, назначение прерываний и работа в качестве скоростного счетчика или в качестве устройства для измерения частоты импульсов. Скоростной счетчик может функционировать с программным управлением или без него. Руководство по программированию 6.1 Основные команды Программируемый контроллер S7-1200 120 Системное руководство, 11/2009, A5E02669003-02 Многие конфигурационные параметры скоростных счетчиков устанавливаются только в конфигурации устройств проекта. Некоторые параметры скоростных счетчиков инициализируются в конфигурации устройств проекта, но позже могут быть изменены под управлением программы. Параметры команды CTRL_HSC обеспечивают программное управление процессом счета: ● Установка направления счета на новое значение NEW_DIR ● Установка текущего значения счетчика на новое значение NEW_CV ● Установка эталонного значения на новое значение NEW_RV ● Установка значения интервала времени (для режима измерения частоты) на новое значение NEW_PERIOD Если при исполнении команды CTRL_HSC следующие биты установлены в 1, то соответствующее значение NEW_xxx загружается в счетчик. Несколько запросов (более одного бита установлено одновременно) обрабатываются за одно исполнение команды CTRL_HSC. ● DIR = 1 – это запрос на загрузку значения NEW_DIR, 0 = нет изменения ● CV = 1 – это запрос на загрузку значения NEW_CV, 0 = нет изменения ● RV = 1 – это запрос на загрузку значения NEW_RV, 0 = нет изменения ● PERIOD = 1 – это запрос на загрузку значения NEW_PERIOD, 0 = нет изменения Команда CTRL_HSC обычно помещается в OB аппаратных прерываний, который исполняется, когда запускается аппаратное прерывание, связанное со счетчиком. Например, если событие CV=RV запускает прерывание, связанное со счетчиком, то кодовый блок OB аппаратных прерываний исполняет команду CTRL_HSC и может изменить эталонное значение, загрузив значение NEW_RV. Текущее значение счетчика отсутствует среди параметров CTRL_HSC. Адрес образа процесса, в котором сохраняется текущее значение счетчика, назначается при конфигурировании счетчика. Вы можете непосредственно считывать значение счетчика с помощью программной логики, и значение, возвращаемое в вашу программу, будет правильным значением счетчика для того момента, когда счетчик считывался. Но счетчик продолжает счет быстрых событий. Поэтому текущее значение счетчика может измениться, прежде чем ваша программа завершит процесс со старым значением. Подробности для параметров CTRL_HSC: ● Если нет запроса на обновление параметра, то соответствующие входные значения игнорируются. ● Параметр DIR действителен только тогда, когда для сконфигурированного направления счета задано программное управление "User program (internal direction control [Программа пользователя (внутреннее управление направлением счета)])". Вы задаете способ использования этого параметра в конфигурации HSC. ● Для HSC S7-1200 в CPU или на сигнальной плате параметр BUSY всегда имеет значение 0. Руководство по программированию 6.1 Основные команды Программируемый контроллер S7-1200 Системное руководство, 11/2009, A5E02669003-02 121 Коды условий: В случае ошибки ENO устанавливается в 0, а выход STATUS содержит код условия. Значение STATUS (W#16#...) Описание 0 Нет ошибки 80A1 Идентификатор HSC не обращается к HSC 80B1 Недопустимое значение в NEW_DIR 80B2 Недопустимое значение в NEW_CV 80B3 Недопустимое значение в NEW_RV 80B4 Недопустимое значение в NEW_PERIOD 6.1.3.3 Принцип действия скоростных счетчиков Скоростной счетчик (HSC) может быть использован как вход для углового шагового датчика. Угловой шаговый датчик делает определенное число отсчетов на оборот, а также по одному импульсу сброса на каждый оборот. Генератор или генераторы тактовых импульсов и импульс сброса от углового шагового датчика поставляют входную информацию для HSC. HSC загружается первым из нескольких предустановленных значений, а выходы активизируется в течение интервала времени, когда текущее значение счетчика меньше текущего предустановленного значения. HSC запускает прерывание, когда текущее значение счетчика равно предустановленному, когда происходит сброс, а также когда меняется направление. Когда текущее значение счетчика становится равным предустановленному значению, вызывая прерывание, в счетчик загружается новое предустановленное значение, а для выходов устанавливается следующее состояние. Когда прерывание вызывается сбросом, то загружается первое предустановленное значение и устанавливаются первые состояния выходов, и цикл повторяется. Так как частота прерываний значительно меньше частоты счета HSC, то может быть реализовано точное управление скоростными операциями при относительно малом влиянии на цикл CPU. Метод закрепления прерываний позволяет каждую загрузку нового предустановленного значения выполнять в отдельной программе прерываний, облегчая управление состоянием. (В качестве альтернативы вы можете все прерывания обрабатывать в одной программе прерываний.) Выбор функционального назначения для HSC Все HSC при одинаковом режиме счета работают одинаково. Имеются четыре основных типа быстрых счетчиков: ● Однофазный счетчик с внутренним управлением направлением ● Однофазный счетчик с внешним управлением направлением ● Двухфазный счетчик с 2 тактовыми входами ● Квадратурный A/B-счетчик Руководство по программированию 6.1 Основные команды Программируемый контроллер S7-1200 122 Системное руководство, 11/2009, A5E02669003-02 HSC любого типа можно использовать с входом сброса или без него. При активизации входа сброса (с некоторыми ограничениями, см. следующую таблицу) текущее значение сбрасывается и остается сброшенным до деактивизации вход сброса. ● Функция частоты: Некоторые режимы HSC допускают такое конфигурирование HSC (Type of counting [Тип счета]), чтобы счетчик выдавал частоту вместо текущего числа импульсов. Имеются три различных интервала измерения частоты: 0,01; 0,1 или 1,0 секунда. Интервал измерения частоты определяет, как часто HSC вычисляет и выдает новое значение частоты. Выданная частота является средним значением, определяемым общим числом отсчетов за последний интервал измерения. Если частота изменяется быстро, то выданное значение будет промежуточной величиной между максимальной и минимальной частотой на интервале измерения. Значение частоты всегда сообщается в герцах (импульсах в секунду) независимо от установленного интервала измерения частоты. ● Режимы работы и входы счетчика: В следующей таблице показаны входы, используемые для таких функций, как генератор тактовых импульсов, управление направлением и сброс HSC. Один и тот же вход не может быть использован для двух разных функций, но любой вход, не используемый текущим режимом работы HSC, может быть использован для другой цели. Например, если HSC1 находится в режиме, который использует встроенные входы, но не использует внешний сброс (I0.3), то I0.3 можно использовать для прерываний по обнаружению фронта или для HSC2. |