06_InstructionSet_r (1087186), страница 16
Текст из файла (страница 16)
Справочные данные об управляющем байте PTO/PWMУправляРезультат выполнения операции PLSющийДебло- Фун- Сегменти- МетодБазарегистркиров- кция рованиеобноввремени(16-ричное каРТОлениязначение)PWMКол-воимпульсов16#81ДаPTOОдносегм.1 мкс/цикл16#84ДаPTOОдносегм.1 мкс/циклЗагружено16#85ДаPTOОдносегм.1 мкс/циклЗагружено16#89ДаPTOОдносегм.1 мс/цикл16#8CДаPTOОдносегм.1 мс/циклЗагружено16#8DДаPTOОдносегм.1 мс/циклЗагружено16#A0ДаPTOМногосегм.1 мкс/циклМногосегм.ШиринаимпульсаПериодследования импульсовЗагруженЗагруженЗагруженЗагружен16#A8ДаPTO16#D1ДаPWMСинхрон.1 мкс/цикл1 мс/цикл16#D2ДаPWMСинхрон.1 мкс/циклЗагруж.16#D3ДаPWMСинхрон.1 мкс/циклЗагруж.16#D9ДаPWMСинхрон.1 мс/цикл16#DAДаPWMСинхрон.1 мс/циклЗагруж.16#DBДаPWMСинхрон.1 мс/циклЗагруж.ЗагруженЗагруженЗагруженЗагружен139Программируемый контроллер S7-200. Системное руководствоРасчет значений таблицы профилейЧастотаВозможность многосегментного режимаконвейерной обработки генераторов PTO/PWM10 кГцможет быть полезной во многих приложениях, вчастности, при управлении шаговыми2 кГцдвигателями.Например, вы можете использовать PTO сВремяпрофилем импульсов для управления шаговымдвигателем с помощью простой123последовательности, состоящей из разгона,рабочего режима и торможения, или4 000 имп.значительно более сложныхпоследовательностей.
Для этого вы определяете 1 Сегмент 12 Сегмент 23 Сегмент 3200 имп.3400 имп.400 имп.профиль импульсов, который может включать всебя до 255 сегментов, причем каждый сегментсоответствует некоторой функции, напр., разгон, Рис. 6–31. Частотно-временная диаграммарабочий режим и торможение.На рис. 6–31 показан пример значений таблицы профиля, необходимых для генерированияпоследовательности выходных импульсов, которая разгоняет шаговый двигатель (сегмент1), обеспечивает его работу с постоянной скоростью (сегмент 2), а затем тормозитдвигатель (сегмент 3).В этом примере: Начальная и конечная частота следования импульсов равна 2 кГц,максимальная частота следования импульсов равна 10 кГц, и для достижения желаемогоколичества оборотов двигателя требуется 4 000 импульсов.
Так как величины в таблицепрофиля выражаются в терминах периода следования импульсов, а не в частоте, то выдолжны преобразовать заданные значения частоты в значения периода следованияимпульсов. Тогда начальное и конечное значение периода следования импульсов составит500 мкс, а период следования импульсов, соответствующий максимальной частоте, равен100 мкс. На интервале ускорения выходного профиля максимальная частота следованияимпульсов должна быть достигнута примерно через 200 импульсов.
Интервал замедленияпрофиля должен быть завершен примерно за 400 импульсов.Для данного сегмента может быть использована следующая формула для определенияприращения периода следования импульсов, которую генератор PTO/PWM использует длянастройки периода каждого импульса:Приращение периода следования импульсов для сегмента =| End_CTseg - Init_CTseg | / Quantitysegгде:End_CTseg = конечное значение периода следования импульсов для данногосегментаInit_CTseg = начальное значение периода следования импульсов для данногосегментаQuantityseg = количество импульсов в данном сегментеС помощью этой формулы можнорассчитать значения приращенийпериода следования импульсов дляданного примера применения:Сегмент 1 (ускорение):Приращение периода следованияимпульсов = -2Сегмент 2 (постоянная скорость):Приращение периода следованияимпульсов = 0Сегмент 3 (замедление):Приращение периода следованияимпульсов = 1В таблице 6–38 приведены значения длягенерирования последовательностиимпульсов из примера (предполагается,что таблица профиля находится впамяти переменных, начиная с V500).Вы можете включить в свою программукоманды для загрузки этих значений впамять переменных, или вы можетеопределить значения профиля в блокеданных.140Таблица 6–38.
Значения таблицы профиляАдрес Значе- ОписаниениеVB5003Общее количество сегментовVW501500Сегмент 1Начальный периодследованияимпульсовVW503-2Приращениеначального периодаследованияимпульсовVD505200Количество импульсовVW509100Сегмент 2Начальный периодследованияимпульсовVW5110Приращение периодаследованияимпульсовVD513 3400Количество импульсовVW517100Сегмент 3Начальный периодследованияимпульсовVW5191Приращение периодаследованияимпульсовVD521400Количество импульсовНабор команд S7–200Глава 6Чтобы определить, приемлемы ли переходы между сегментами последовательностиимпульсов, вам нужно знать период для последнего импульса сегмента. Если приращениепериода следования импульсов не равно 0, вы должны рассчитать период для последнегоимпульса сегмента, так как это значение не указано в профиле.
Для расчета периода дляпоследнего импульса пользуйтесь следующей формулой:Период последнего импульса сегмента = Init_CTseg + ( Deltaseg * ( Quantityseg - 1 ))где:Init_CTseg = начальный период следования импульсов для этого сегментаDeltaseg = приращение периода следования импульсов для этого сегментаQuantityseg = количество импульсов в этом сегментеВ то время как приведенный выше упрощенный пример полезен в качестве введения,реальные приложения могут потребовать более сложных профилей последовательностейимпульсов. Помните, что приращение периода следования импульсов может быть заданотолько как целое количество микросекунд или миллисекунд, и изменение периодавыполняется на каждом импульсе.Влияние этих двух пунктов состоит в том, что расчет приращения периода следованияимпульсов для данного сегмента может потребовать итеративного подхода.
Можетпотребоваться некоторая гибкость в значении конечного периода следования импульсовили количества импульсов для данного сегмента.В процессе определения правильных значений таблицы профиля может быть полезнадлительность данного сегмента профиля. Время, необходимое для завершения данногосегмента профиля, может быть рассчитано с помощью следующей формулы:Длительность сегмента = Quantityseg * ( Init_CT + ( ( Deltaseg/2 ) * ( Quantityseg - 1 ) ) )где:Quantityseg = количество импульсов в данном сегментеInit_CTseg = начальный период следования импульсов для данного сегментаDeltaseg = приращение периода следования импульсов для данного сегмента141Программируемый контроллер S7-200. Системное руководствоАрифметические операцииОперации сложения, вычитания,умножения и деленияСложениеВычитаниеIN1 + IN2 = OUTIN1 - IN2 = OUTLAD и FBDIN1 + OUT = OUTOUT - IN1 = OUT STLКоманды сложения целых чисел (+I) и вычитания целыхчисел (-I) складывают или вычитают два 16–битовыхцелых числа и дают 16–битовый результат.
Командысложения двойных целых чисел (+D) и вычитаниядвойных целых чисел (-D) складывают или вычитаютдва 32–битовых целых числа и дают 32–битовыйрезультат. Команды сложения вещественных чисел (+R)и вычитания вещественных чисел(-R) складывают или вычитают два 32–битовыхвещественных числа и дают результат в виде 32–битового вещественного числа.УмножениеДелениеIN1 * IN2 = OUTIN1 / IN2 = OUT LAD и FBDIN1 * OUT = OUTOUT / IN1 = OUT STLКоманды умножения целых чисел (*I) и деления целыхчисел (/I) перемножают или делят два 16–битовыхцелых числа и дают 16–битовый результат. (Дляделения остаток не сохраняется.) Команды умножениядвойных целых чисел (*D) и деления двойных целыхчисел (/D) перемножают или делят два 32–битовыхцелых числа и дают 32–битовый результат.
(Дляделения остаток не сохраняется.) Команды умножениявещественных чисел (*R) и деления вещественныхчисел (/R) перемножают или делят два32–битовых вещественных числа и дают в результате32–битовое вещественное число.Биты специальной памяти и ENOSM1.1 указывает на ошибки переполнения инедопустимые значения. Если бит SM1.1 установлен, тосостояние SM1.0 и SM1.2 не имеет значения, ипервоначальные входные операнды не меняются.
ЕслиSM1.1 и SM1.3 не установлены, то арифметическаяоперация завершилась с допустимым результатом, иSM1.0 и SM1.2 содержат допустимый статус. Если вовремя операции деления устанавливается SM1.3, то всеостальные биты состояния арифметической операцииостаются неизменными.Сбойные состояния,устанавливающие ENO = 0■ SM1.1 (переполнение)■ SM1.3 (деление на ноль)■ 0006 (косвенный адрес)Биты специальной памяти, на которые действует команда■ SM1.0 (ноль)■ SM1.1 (переполнение, во время операции полученонедопустимое значение или обнаружен недопустимый входнойпараметр)■ SM1.2 (отрицательное число)■ SM1.3 (деление на ноль)Таблица 6–39. Допустимые операнды для команд сложения, вычитания, умножения и деленияВходы/выходы ТипыОперандыданныхIN1, IN2INTIW, QW, VW, MW, SMW, SW, T, C, LW, AC, AIW, *VD, *AC, *LD,константаDINTID, QD, VD, MD, SMD, SD, LD, AC, HC, *VD, *LD, *AC, константаREALID, QD, VD, MD, SMD, SD, LD, AC, *VD, *LD, *AC, константаOUTINTIW, QW, VW, MW, SMW, SW, LW, T, C, AC, *VD, *AC, *LDDINT, REAL ID, QD, VD, MD, SMD, SD, LD, AC, *VD, *LD, *ACВещественные числа (или числа с плавающей точкой) представляются в формате, описанном встандарте ANSI/IEEE 754-1985 (одинарная точность).
За дополнительной информацией обратитесь кэтому стандарту.142Набор команд S7–200Глава 6Пример: Арифметические операции с целыми числамиNetwork 1LDI0.0+IAC1, AC0*IAC1, VW100/IVW10, VW20040ДелениеУмножениеСложение+AC160=AC0100AC040*AC120=800VW100VW1004000/VW20040=VW10100VW200Пример: Арифметические операции с вещественными числамиNetwork 1LDI0.0+RAC1, AC0*RAC1, VD100/RVD10, VD200Сложение4000.0 +AC1Умножение6000.0AC0=10000.0400.0AC0AC1*Деление200.0VD100=80000.0VD1004000.0VD200/41.0VD10=97.5609VD200143Программируемый контроллер S7-200.
Системное руководствоУмножение целых чисел с представлением результата в видедвойного целого числа и деление целых чисел с остаткомУмножение целых чисел с представлениемрезультата в виде двойного целого числаIN1 * IN2 = OUTLAD и FBDIN1 * OUT = OUTSTLКоманда умножения целых чисел с представлениемрезультата в виде двойного целого числа (MUL)перемножает два 16–битовых целых числа и дает 32–битовое произведение. В команде умножения STLмладшее слово (16 битов) 32–битового выхода OUTиспользуется как один из сомножителей.Деление целых чисел с остаткомIN1 / IN2 = OUTLAD и FBDOUT / IN1 = OUTSTLКоманда деления целых чисел с остатком (DIV) делитдва 16–битовых целых числа и дает 32–битовыйрезультат, состоящий из 16–битового остатка (старшееслово) и 16–битового частного (младшее слово).В команде деления STL младшее слово (16 битов) 32–битового выхода OUT используетсякак делимое.Биты специальной памяти и ENOДля обеих команд, представленных на этой странице, биты специальной памяти (SM)указывают на ошибки и недопустимые значения.
Если во время операции деленияустанавливается SM1.3 (деление на ноль), то все остальные биты состоянияарифметической операции остаются неизменными. В противном случае всеподдерживаемые биты состояния арифметической операции содержат после завершенияарифметической операции допустимый статус.Сбойные состояния, устанавливающиеENO = 0■ SM1.1 (переполнение)■ SM1.3 (деление на ноль)■ 0006 (косвенный адрес)Биты специальной памяти, на которыедействует команда■ SM1.0 (ноль)■ SM1.1 (переполнение)■ SM1.2 (отрицательное число)■ SM1.3 (деление на ноль)Таблица 6–40.