Будем считать, что модули вычисления Y0 и Y1 оформлены в виде подпрограмм, которые вызываются командами
CАLL CALC_Y0
CАLL CALC_Y1
Для реализации представленного алгоритма можно использовать работу битового процессора (если такой имеется) или специальные команды анализа битов.
Ниже приведена программа для микроконтроллера INTEL MCS – 196 [1,2].
В его составе команд имеются команды тестирования битовых переменных: BBC
и BBS
(branch bit clear- переход ,если бит очищен и branch bit set-переход, если бит установлен), осуществляющие переход на заданную метку ( трехоперандная команда ) в зависимости от того установлен или сброшен анализируемый бит.
Формат команды:
BBC
breg, bitno, cadd
где breg – анализируемый регистр;
bitno – номер анализируемого бита;
cadd – точка перехода по условию.
;подпрограмма вычисления Y0
CALC_Y0: BBS X, 1, SET_Y0 ;анализ младшего бита 1 регистра X
BBC X, 2, CLR_Y0 ;анализ бита 2
BBC X, 5, CLR_Y0 ;анализ бита 5
SET_Y0: ORB Y, #00000001B ;установка в 1 бита Y0
RET
CLR_Y0: ANDB Y, #11111110B ;очистка бита Y0
RET
;подпрограмма вычисления битовой переменной Y1
CALC_Y1: BBC X, 3, CLR_Y1
BBS X, 7, CLR_Y1
SET_Y1: ORB Y, #00000010B ;установка в 1 бита Y1
RET
CLR_Y1: ANDB Y, #11111101B
RET
При решении задачи язык программирования может быть выбран любым.
Задача 2.
Составить алгоритм и программу обслуживания аналого-цифрового преобразователя (АЦП), осуществляющего прием и обработку данных (М – число отсчетов) по N-каналу (данные сведены в таблицу 5), если АЦП имеет 16 входных каналов. Выбор конкретного канала осуществляется записью в разряды (от 0 до 3) регистра выбора канала DAR (Data Address Register) соответствующего двоичного кода. После выбора номера канала 7 разряд DAR устанавливается в "1".
Управление запуском АЦП и проверка готовности данных после преобразования осуществляется с использованием регистра управления и статуса CSR (Control and Status Register). При этом пуск АЦП осуществляется записью "1" в нулевой разряд, готовность проверяется по наличию "1" в 10 разряде CSR. Результат преобразования в виде выходного кода АЦП поступает в регистр данных АЦП DR (Data Register).
Таблица 5
Номер последней цифры шифра
|
Номер канала N
|
Число отсчетов М
|
Размещение в памяти с адреса – G.
|
0
|
12
|
120
|
10000
|
1
|
7
|
95
|
5000
|
2
|
9
|
48
|
6000
|
3
|
14
|
111
|
4000
|
4
|
6
|
39
|
3000
|
5
|
8
|
46
|
7000
|
6
|
11
|
51
|
3500
|
7
|
10
|
77
|
5500
|
8
|
5
|
84
|
6500
|
9
|
2
|
90
|
7500
|
Методические указания к решению задачи 2
Алгоритм решения задачи по обслуживанию АЦП может быть представлен в следующем виде:
Программа может быть составлена на любом языке программирования. Hиже в качестве примера приведен фрагмент программы для DEC – архитектурных машин ("Электроника") с применением ассемблера.
.TITLE ADC
DAR = 160070 ;адреса регистров АЦП
DR = 160072
CSR = 160074
ADC: MOV #N, @#DAR ;запись номера канала N
;число должно быть восьмеричным
;или десятичным из задания
MOV #G, R2
MOV @#DAR, R1
M1: TSTB R1 ;проверка выбора номера канала;
BPL M1
MOV #M , R3 ;счетчик циклов в R3 (число М)
M2: MOV #0, CSR ;запуск АЦП
BIT #2000, CSR ;проверка состояния 1 в 10 разряде CSR
BEQ M2
MOV @#DR, (R2)+
DEC R3
BNE M2
HALT
M: .BYTE
N: .BYTE
DAR: .WORD
CSR: .WORD
DR: .WORD
D: .BLKW G. ;резервирование в памяти
;числа слов под массив данных
.END ADC
Задача 3.
Определите требуемое число разрядов счетчика и число, которое должно быть записано в регистр счетчика (Кдел
= двоичное), для получения периода квантования Тк
, равного такому количеству минут, каковы две последние цифры вашей зачетной книжки. При этом входная эталонная частота таймера-счетчика равна fвх
= fэт
= 10МГц.
Методические указания к решению задачи 3
Соотношение между частотой входных импульсов fвх
счетчика, частотой выходных импульсов таймера fвых
(которые могут задавать период квантования Тк
= 1/fвых
) и коэффициентом деления счетчика (Кдел
) равно:
,
где Кдел
= 2n
– 1,
n – число разрядов счетчика.
Чем больше число разрядов счетчика, тем реже появляются выходные импульсы таймера. Например, если счетные импульсы подаются с частотой 1,1925 МГц и три шестнадцатиразрядных счетчика будут включены каскадно, то будем иметь 48 разрядный счетчик и импульс на выходе таймера появится более чем через 7 лет.
Соответственно, для 32-разрядного счетчика можно получить период квантования, равный 1 час, для 16-разрядного счетчика выходная частота составит ≈ 18 имп/сек, а для 8-разрядного счетчика при заданной частоте fвх
, выходная частота составит ≈ 4676 имп/сек. Таким образом, применение счетчиков от 8-разрядного до 48-разрядного позволяет настроить систему управления в достаточно широком диапазоне регулирования периода квантования цифровой системы регулирования.
Задача 4.
Составить на языке лестничных диаграмм LD (Ladder Diagram) программу для управления транспортным и пешеходным светофором согласно техническому заданию. В качестве программируемого логического контроллера используется контроллер SIMATIC фирмы SIEMENS.
Техническое задание
1. Цель разработки программы
: управление движением транспорта и пешеходов на пешеходном переходе.
2. Программа должна управлять включением соответствующих цветов транспортного и пешеходного светофоров. Транспортный светофор оснащен красным (RED), желтым (YELLOW), зеленым (GREEN) огнями. Пешеходный светофор имеет: зеленый и красный цвет, а так же кнопку, чтобы потребовать зеленый свет для пешеходов.
3. Для исключения угрозы безопасности пешеходов и водителей должны быть выполнены условия:
3.1. Предварительная (начальная) установка светофоров: горит зеленый свет для транспортного светофора и красный свет для пешеходного.
3.2. Если контроллер по нажатию кнопки получает требование переключить пешеходный светофор на зеленый свет, то он переключает транспортный светофор с зеленого света на красный, через желтый.
4. Требования к таймерам по длительности "горения" соответствующих цветов светофора:
4.1. Желтая фаза после зеленой для автомобильного движения – 3 сек.
4.2. Красная фаза для автомобильного движения – 16 сек и начинается одновременно с зеленой фазой пешеходного движения.
4.3. Зеленая фаза для пешеходного движения – 10 сек.
4.4. Желтая фаза после красной для автомобильного движения – 3 сек
4.5. Задержка для следующего требования на зеленый свет (нажатие кнопок на разных концах улицы) – 1 сек.
Методические указания к решению задачи 4
PLC (Programmable Logical Controller) – программируемые логические контроллеры (ПЛК) представляют собой завершенную форму микропроцессорных средств, которые характеризуются оригинальной архитектурой и специальным программным обеспечением (ПО) [1,3]. Интерфейс между датчиками, исполнительными устройствами и центральным процессом PLC, обеспечивается специальными электронными модулями ввода/вывода (цифровых и аналоговых сигналов). Структура PLC показана на рисунке.
PLC отличается циклическим характером работы. Память программ PLC обычно состоит из 2 сегментов, в первом размещается неизменяемая часть – интерпретатор инструкций программы пользователя, которая размещается во втором сегменте (изменяемая часть).
При обработке конкретной программы на 1 этапе работы PLC производится тестирование аппаратуры CPU, и запускается цикл опроса всех входных переменных с запоминанием их состояния в специальной области памяти данных (ОЗУ), называемый "образ состояния входных переменных" PII (Process Input Image).
На следующем этапе цикла осуществляется вычисление логических выражений, используя в качестве аргументов состояния входных образов и внутренние переменные, которые обозначают режимы работы системы, а так же отражают состояние программных таймеров и счетчиков.
Результатом выполнения программы являются значения выходных переменных и новые значения внутренних переменных.
CPU записывает выходные переменные в другую область памяти данных, называемую "образ состояния выходных переменных" POI (Process Output Image). Одновременно CPU управляет счетчиками и таймерами. На последнем этапе цикла слово выходных воздействий выдается из POI в адаптеры выходных сигналов.
Такая организация работы PLC по существу является операционной системой реального времени с жестким циклом работы, зависящим от возможностей CPU PLC.
PLC являются проблемно-ориентированными машинами. Языки их программирования в основном ориентированы на специалистов по автоматизации, а не программистов. Накопленный опыт по языкам PLC был обобщен в виде стандарта Международной электротехнической комиссии: IEC1131–3, в котором выделено 5 языков программирования:
1. SFC (Sequential Function Chart) – последовательных функциональных схем;
2. LD (Ladder Diagram) – лестничных диаграмм (язык релейно-контакторных схем);
3. FBD (Function Block Diagram) – функциональных блоковых диаграмм;
4. ST (Structured Text) – структурированного текста;
5. IL (Instruction List) – список инструкций (команд).
Язык SFC описывает логику программы на уровне чередующихся функциональных блоков и условных переходов. Инструкции для функциональных блоков могут быть написаны на одном из 4 других языков. Например: для логической функции:
_
С = А·В
1) На языке LD имеется цепь
2)
FBD имеется обозначение
3) ST имеется строка C = A AND NOT B
4) На языке IL имеется последовательность инструкций (типа языка ассемблера)
LD A
ANDN B
ST C
Наиболее понятным для инженеров-специалистов в области автоматизации является язык LD или РКС (релейно-контакторных схем).
Синтаксис языка РКС основывается на следующих предпосылках:
-для логического управления программу можно представить в виде системы уравнений:
Y1
= f(Xi
, Yj
, Zk
)
………
Ym
= f(Xi
, Yj
, Zk
)
Z1
= f(Xi
, Yj
, Zk
)
………
Zq
= f(Xi
, Yj
, Zk
)
где Xi
– входные переменные (i = 1, … n),
Yj
– выходные переменные (j = 1, … m),
Zk
– внутренние переменные (k = 1, … l);
-логические функции в правых частях уравнений представляют собой ДНФ или КНФ с применением операций И, ИЛИ, НЕ;
-каждое уравнение трактуется как цепь релейно-контактной схемы, т.е. соединение элементов релейной схемы с хотя бы одной инструкцией присвоения.
Запись операции на языке РКС содержит логическое выражение с инструкцией присвоения:
- логическое выражение - инструкция присвоения
f(xi
, yj
, zk
) = Y, = Z
Символика РКС
|
Булева функция
|
Содержание операции
|
Логические компоненты
|
|
·
|
Опрос входа, выхода внутренней переменной
|
|
·/
|
Опрос с инверсией
|
|
(
|
Начало ветвления параллельной цепи
|
|
)
|
Конец ветвления параллельной цепи
|
|
+
|
Перенос маркера в начало ветвления
|
Символы присвоения
|
|
=
|
Присвоение результата вычислений внутренней переменной или выходу
|
|
= S
|
Включение выхода или внутренней переменной с фиксацией
|
|
= R
|
Аналогично выключение с фиксацией
|
Программа для PLC представляет собой сеть из логических функций (Network (англ.), Netzwerk (нем.)). Каждая сеть должна либо оканчиваться катушкой реле или блоком (например, таймером).
Вернемся к решению поставленной задачи управления светофорами.
Определим число требуемых входных / выходных переменных:
1. 2 входа (Е1, Е2) – кнопки требования зеленого света от пешеходов на обеих сторонах улицы;
2. 5 выходов – для управления индикацией обоих светофоров;
3. 5 таймеров (Т) – для определения длительности соответствующих фаз светофоров;
4. 1 маркер (М) – для включения светофора по требованию зеленого сигнала пешеходом.
Присвоим входным и выходным переменным символические обозначения:
Адрес
|
Описание
|
Символическое имя
|
А 0.0
|
Красный цвет для пешехода
|
People_Red
|
А 0.1
|
Зеленый цвет для пешехода
|
People_Green
|
А 0.5
|
Красный цвет для автомобиля
|
Auto_Red
|
А 0.6
|
Желтый цвет для автомобиля
|
Auto_Yellow
|
А 0.7
|
Зеленый цвет для автомобиля
|
Auto_Green
|
Е 0.0
|
Кнопка на правой стороне
|
P_Right
|
Е 0.1
|
Кнопка на левой стороне
|
P_Left
|
М 0.0
|
Маркер для включения светофора по требованию зеленого цвета пешехода
|
Marker
|
Т 2
|
Длительность желтой фазы для автомобилей (3 с.)
|
Auto_Yellow
|
Т 3
|
Длительность зеленой фазы для пешехода (10 с.)
|
People_Green
|
Т 4
|
Задержка красной фазы для автомобилей (6 с.)
|
Auto_Green
|
Т 5
|
Длительность красно-желтой фазы для автомобилей (3 с)
|
Auto_R – Y
|
Т 6
|
Задержка следующего требования на зеленый свет для пешеходов(1 с)
|
Pause_People
|
Алгоритм функционирования конечного автомата можно представить в виде последовательной функциональной диаграммы или циклограммы.
Циклограмма
Для PLC SIMATIC программирование осуществляется с использованием языка STEP 7, используя либо графический язык РКС (КОР – контактный план) или список команд AWL.
Алгоритм действий при программировании:
1. Создать необходимые блоки: организационный блок (ОВ1) для циклической обработки программы и функцию (FC1), в которую собственно и вводится программа.
2. Назначить редактор языка (КОР или AWL).
3. Запрограммировать блоки, запустить редактор языка, объявить переменные и ввести программу, разделенную на сети.
4. Сохранить и загрузить блоки на выполнение.
Для рассматриваемой задачи в символах РКС организационный блок имеет вид:
Netzwerk 1: Вызов функции FC1 для управления светофором
Элементы КОР для FC1 имеют вид:
Netzwerk 1: Есть ли запрос на зеленый свет для пешеходов
Netzwerk 2: Зеленая фаза для автомобилей
Netzwerk 3: Пуск таймера желтой фазы для автомобилей
Netzwerk 4: Желтая фаза для автомобилей
Netzwerk 5: Красная фаза для автомобилей
Netzwerk 6: Пуск таймера зеленой фазы для пешеходов
Далее допишите оставшиеся сети для реализации алгоритма или циклограммы.
Контрольное задание №3
Задача 1.
Шаговый электропривод, управляемый целыми шагами α°[град] и имеющий частоту приемистости fпр
[кГц], должен отработать требуемое перемещение ∆φ [рад] за время кадра tк
с предельным быстродействием.
Сделать вывод о работоспособности системы электропривода (возможности решения задачи позиционного управления) и определить требуемое количество выдаваемых системой управления импульсов на этапе разгона, движения с постоянной скоростью и торможения.
Данные для расчетов сведены в таблицу 6.
Таблица 6
Номер последней цифры шифра
|
α°[град]
|
fпр
[кГц]
|
∆φ [рад]
|
tк
[c]
|
0
|
1
|
1,0
|
1000
|
15
|
1
|
2
|
1,5
|
1500
|
10
|
2
|
1,8
|
0,5
|
500
|
15
|
3
|
1,5
|
2,0
|
700
|
20
|
4
|
0,5
|
0,7
|
1200
|
14
|
5
|
0,8
|
1,2
|
2000
|
11
|
6
|
1,6
|
1,8
|
1600
|
16
|
7
|
1,2
|
0,9
|
1900
|
18
|
8
|
0,9
|
1,0
|
800
|
10
|
9
|
3
|
2,0
|
600
|
13
|
Методические указания к решению задачи 1
Для позиционного электропривода траектория рабочего органа может быть произвольной, а задается начальное и конечное положение и точность позиционирования. Тип траектории выбирается обычно из минимума времени отработки заданного перемещения и ограничения на максимальное значение скорости wmax
и ускорения εmax
. Оптимальная по быстродействию тахограмма для позиционного электропривода имеет трапецеидальный вид [1]:
1 – имеет зону движения с постоянной скоростью ω*
= const.
2 – треугольная тахограмма без зоны движения с постоянной скоростью.
Для кривой 1 выполняется соотношение:
,
где Qзм
– заданное угловое перемещение.
В условиях задачи задана трапецеидальная тахограмма движения, тогда
Предельную скорость шагового электропривода ωз
max
= ω*
можно рассчитать, используя соотношение:
ω*
= α [рад]* fпр
[Гц],
т.е. для α° = 1° ; fпр
= 1кГц
при заданном угловом перемещении ∆φ = 1000 рад.
Из тахограммы движения с постоянной скоростью можно получить:
,
откуда
– время движения с постоянной скоростью;
tк
= t1
+ (t2
– t1
) + (tк
– t2
) – полное время кадра.
Время разгона t1
= (tк
– t2
) = ω*
/ εmax
.
При решении задачи выберите необходимое εmax
для обеспечения
t2
– t1
> 0, так, чтобы суммарное время не превосходило время отработки кадра tк
.
Путь, пройденный на участке пуска и торможения, можно определить из соотношения:
,
а на участке движения с постоянной скоростью:
.
При этом
Количество импульсов управления, необходимое для выдачи на каждом из участков, равно:
,
где α – шаг двигателя.
Частота выдачи импульсов определяется так:
Для работоспособности привода частота выдачи импульсов на всех участках пуска, движения с постоянной скоростью и торможения не должна превышать частоты приемистости шагового электропривода. В случае невозможности отработки заданной траектории в соответствии с параметрами вашего задания, предложить вариант его изменения для обеспечения отработки заданного перемещения ∆φ в установленное время.
Задача 2.
Составить алгоритм метода оценочной функции при осуществлении линейной интерполяции по координатам α,β для выхода в точку А с координатами (αк
,βк
). Построить фактическую траекторию отработки перемещения и нарисовать тактовую диаграмму подачи импульсов на соответствующие координаты. Расчетные данные свести в таблицу 7.
Таблица 7
Номер шага
I
|
Шаг по осям
|
Текущие значения
|
Значение оценочной функции Fi
|
α
|
β
|
αi
|
βi
|
Данные для расчетов представлены в таблице 8.
Таблица 8
Номер последней цифры шифра
|
αк
|
βк
|
0
|
10
|
6
|
1
|
8
|
4
|
2
|
12
|
8
|
3
|
10
|
8
|
4
|
12
|
6
|
5
|
14
|
8
|
6
|
10
|
4
|
7
|
10
|
5
|
8
|
8
|
6
|
9
|
12
|
10
|
Расчеты произвести для обычного и усовершенствованного алгоритма оценочной функции. Дискретность по координатам α и β одинакова и составляет hα
= hβ
= 1мм/имп.
Методические указания к решению задачи 2
В большинстве систем ЧПУ одной из основных задач является обеспечение движения инструмента относительно детали по заданной траектории. Траектория движения аппроксимируется набором отрезков прямых и окружностей. Расчёт текущих значений координат при решении геометрической задачи управления называется интерполяцией.
Дискретность перемещения по координатам hx
, hy
, hz
определяется конструкцией станка и составляет единицы или десятки мкм.
Задание приращений по двум осям координат при hx
= hy
еще не определит заданного прямолинейного движения инструмента между точками.
Если координаты существенно неравны (например, х = 13мм, y = 5мм при hx
= hy
= 0,01 мм), то по одной координате в кадре необходимо выдать 1300 импульсов, а по другой - 500. При этом время движения по оси Х не будет равно времени движения поY и заданная траектория будет искажена (как показано на рисунке).
Если по технологии недопустимо отклонение от заданной траектории (∆ велико), то приблизить фактическую траекторию к заданной можно введением дополнительных опорных точек или применять алгоритмы интерполяции.
Алгоритмы интерполяции можно разделить на алгоритмы единичных приращений: метод цифро-дифференциальных анализаторов, оценочной функции и алгоритмы равных времен: методы цифрового интегрирования, итерационно-табличные методы, прогноза и коррекции [4;6].
По алгоритму оценочной функции следует с определенной частотой, зависящей от скорости перемещения, анализировать знак оценочной функции и в зависимости от него выдавать сигнал изменения на один квант по одной или другой координате. Согласно этому методу моделируется алгебраическое уравнение воспроизводимой кривой. Оценочная функция при линейной интерполяции имеет вид:
Fi
= yi
·X - xi
·Y,
где
,
– требуемые перемещения в кадре.
При проведении интерполяции осуществляют либо обычный алгоритм, либо – усовершенствованный. При обычном алгоритме расчеты значений оценочной функции осуществляют так:
- если сделан шаг по оси Х, то
Fi+1
= yi
·X – (xi
+ 1)·Y = yi
·X – xi
·Y – Y = Fi
– Y,
- если сделан шаг по оси Y
Fi+1
= (yi
+ 1)·X – xi
·Y = yi
·X + X – xi
·Y = Fi
+ X.
При усовершенствованном алгоритме:
- если сделан шаг одновременно вдоль оси Х и Y
Fi+1
= (yi
+ 1)·X – (xi
+ 1)·Y = yi
·X + X – xi
·Y – Y = Fi
+ X – Y.
Таким образом, вычисление нового значения оценочной функции опирается на сохраняемые предыдущие значения.
Пример.
Пусть необходимо осуществить приращение в кадре в абстрактных машинных единицах ∆α = 6; ∆β = 4. Расчетные значения сведены в таблицу 9.
Таблица 9
Такт i
|
Шаг по осям
|
Текущее значение
|
Оценочная функция
|
α
|
β
|
αi
|
βi
|
Fi
= Fi
– Δβ ≥ 0 (α)
Fi
= Fi
+ ∆α – Δβ < 0 (α и β)
|
0
|
-
|
-
|
0
|
0
|
F0
= 0
|
1
|
1
|
-
|
1
|
0
|
F1
= 0 – 4 = - 4
|
2
|
1
|
1
|
2
|
1
|
F2
= - 4 + 6 – 4 = - 2
|
3
|
1
|
1
|
3
|
2
|
F3
= - 2 + 6 – 4 = 0
|
4
|
1
|
0
|
4
|
2
|
F4
= 0 – 4 = - 4
|
5
|
1
|
1
|
5
|
3
|
F5
= - 4 + 6 – 4 = - 2
|
6
|
1
|
1
|
6
|
4
|
F6
= - 2 + 6 – 4 = 0
|
При расчете использован усовершенствованный алгоритм, фактическая траектория движения и тактовая диаграмма показана на рисунке.
Погрешность отработки траектории по методу оценочной функции не превышает значения дискретности перемещения по координате для станка с ЧПУ. Важным достоинством метода оценочной функции является простота стыковки с шаговыми и сервоприводами и небольшая требуемая разрядность системы ЧПУ, определяемая максимальным значением координатных перемещений. Недостатком является небольшая контурная скорость:
,
где h – дискретность перемещения по координате;
Тк
– время реализации алгоритма (период квантования);
к – число одновременно работающих координат.
Задача 3.
Используя метод оценочной функции при круговой интерполяции, построить интерполяционную траекторию при движении из точки с координатами А0
(10, 0) в точку Ак
(0, 10).
Методические указания к решению задачи 3
При круговой интерполяции следует использовать оценочную функцию вида:
Fi
= xi
2
+ yi
2
– R2
.
При отработке траектории в 1 квадранте против часовой стрелки, если применяется обычный алгоритм интерполяции, то расчетные соотношения примут вид:
· если Fi
≥ 0 (нахождение за пределом радиуса окружности), то шаг делается вдоль отрицательного направления оси х, т. е. хi
+1
= xi
– 1
Fi+1
=(xi
– 1)2
+yi
2
– R2
= Fi
– 2xi
+ 1,
· если Fi
< 0, то шаг делается в положительном направлении оси у, т. е. yi
+1
= yi
+ 1
Fi+1
=xi
2
+ (yi
+1)2
– R2
= Fi
+ 2yi
+ 1.
При применении усовершенствованного алгоритма рекомендуется разбить квадрант пополам (π/4). При изменении угла от φ = 0, до φ =π/4 и при Fi
≥ 0 выдача шагов осуществляется по обеим координатам:
Fi+1
=(xi
– 1)2
+(yi
+1)2
– R2
= Fi
– 2(xi
– yi
) + 2,
а при Fi
< 0 только по ведущей координате (уi
)
Fi
+1
= Fi
+ 2yi
+ 1.
При изменении угла от π/4 до π/2 и Fi
< 0 выдача шагов производится по обеим координатам, а при Fi
≥ 0 только по ведущей координате (хi
)
Fi
+1
= Fi
– 2xi
+ 1.
Следует отметить, что при усовершенствованном алгоритме интерполяции затрачивается меньшее число тактов, что приводит к увеличению контурной скорости отработки траектории.
Если перемещение должно осуществляться в других квадрантах в выбранном направлении (по часовой стрелке или против часовой стрелки), то аналогично рассмотренному выше можно получить необходимые расчетные соотношения для Fi
+1
.
Приведенный ниже алгоритм предназначен для реализации метода оценочной функции во всех 4 квадрантах при движении в любом направлении [5]:
Принятые обозначения: I, J – координаты центра дуги;
r – радиус дуги;
τ – такт;
F – скорость подачи, мм/ мин;
d = h – дискретность системы ЧПУ, мм;
ун
, хн
– начальная точка;
ук
, хк
– конечная точка.
CIR: if TAKT > 1 then go to CYCLE
read xн
, ун
, хк
,ук
, I, J, ±F
r = sqr((xн
– I)2
+ (ун
- J)2
)
x = xн
; y = ун
; codx = x; cody = y; f = 0
U= int(F*τ/(60*d));
if xн
= I and ун
> J then αн
= π/2
if xн
= I and ун
< J then αн
= 3*π/2
if xн
> I then αн
= atn((ун
– J)/( xн
– I))
if xн
< I then αн
= π + atn((ун
– J)/( xн
– I))
if xк
= I and ук
> J then αк
= π/2
if xк
= I and ук
< J then αк
= 3*π/2
if xк
> I then αк
= atn((ук
– J)/( xк
– I))
if xк
< I then αк
= π + atn((ук
– J)/( xк
– I))
if sgn(αн
- αк
) = sgn(U) then ∆α = abs(αн
- αк
)
else ∆α = 2π - abs(αн
- αк
)
L = 4 * r * ∆α/π ; l = 0
CYCLE: X = x – I; Y = y – J;
if abs(X) >= abs(Y) and sgn(f*sgn(X)*sgn(Y)) = sgn(U)
then(y = y – U*sgn(X); f = f – 2*Y*sgn(X) + U; go to END);
if abs(X) < abs(Y) and sgn(f*sgn(X)*sgn(Y) < > sgn(U)
then (X = X + U*sgn(Y); f = f + 2*X*sgn(Y) + U; go to END);
x = x + U*sgn(Y); y = y – U*sgn(X);
f = + 2*(abs(X) – abs(Y))*sgn(Y) + 2*U;
END: l = l + abs(X – codx) + abs(y – cody);
codx = x; cody = y;
if l < L then TAKT = TAKT + 1
else TAKT = 1
RETURN
Ниже приводится листинг программы на языке Си, которая реализует алгоритм оценочной функции, приведенный выше, с небольшими модификациями. Скорость подачи принята 1 шаг за один цикл алгоритма, направление движения по окружности зависит от введенных координат центра, начальной и конечной точек.
#
include
<
stdio
.
h
> /* Подключение библиотеки стандартных функций ввода-вывода */
#
include
<
math
.
h
> /* Подключение библиотеки математических функций */
#define PI
3.1415
/*
Определение числа
p
*/
#define SGN(a) (((a) >= 0) ?
1 : -1) /* Определение макроса для вычисления знака переменной; макрос возвращает 1, если значение переменной ≥0 и возвращает -1, если значение переменной <0 */
int
x
_
n
,
y
_
n
,
x
_
k
,
y
_
k
,
содержание ..
468
469
470 ..