Page 24 - 4352
P. 24
3.2 Приклад найпростішого постпроцесора
Тепер ми можемо побудувати найпростіший постпроцесор. Цей
постпроцесор повинен виводити у вихідний файл:
• заголовок, що складається із символу ' % ';
• кадри, що відповідають переміщенням в абсолютному режимі, з
нумерацією кадрів із кроком 1, що містять:
• G-функції, що відповідають виду переміщення;
• координати x, y, z кінцевої точки переміщення для лінійної інтерполяції
й позиціювання по адресах X, Y, Z або координати x та у кінцевої точки дуги й
координати i та j центра дуги по адресах X, Y, I, J для кругових переміщень;
• значення робочої подачі за адресою F
• Координати повинні бути виражені в мм і виводитися у форматі з
обов'язковою плаваючою крапкою й знаком, дискретність повинна бути
дорівнює 0.001 мм.
• Завершувати керуючу програму повинен кадр із функцією M02.
Текст опису цього постпроцесора:
REM Найпростіший постпроцесор - тільки переміщення
' Файл SMPL1.PSS містить опис найпростішого постпроцесора
' Дискретність : 0.001 мм. - декартові переміщення.
' Основний режим: в абсолютах.
' Функції опису : Лінійна й кругова інтерполяція.
' Розділ ініціалізації містить присвоєння початкових значень
' для основних параметрів
' і визначення імен констант, що вводяться користувачем
RDISCR=0.001 ' У параметра RDISCR значення 0.001:
' дискретність по переміщеннях, рівна 0.001
Open fileout$ For Output As idl#
DO
CALL NEXT_STEP()
' Головний розділ містить опис дій постпроцесора з
' формування керуючої програми для кожної аналізованої
' команди вихідної програми. Залежно від виду
' аналізованої команди тобто значення параметра command#
' описуємо дії постпроцесора з формування керуючої програми:
if command#=HEADER# then 'Інформація на початку програми.
write id1# using "%%%s" , NL$) ' Вивід заголовка (знак %)
n#=i ' Лічильник кадрів установлюється в 1
elseif command#=END# then ' Інформація наприкінці програми.
write id1# using "N%d", n# ' Вивід номера поточного кадру
n#=n#+1 ' Збільшуємо лічильник кадрів
write id1# using "МО 2" ' Вивід функції МО 2
write id1# using "%s", NL$ ' Завершення кадру - символ LF
elseif command# = MOVE# then
' Інформація, пов'язана з переміщенням інструмента,
23