2 - Специальный раздел (1094728), страница 2
Текст из файла (страница 2)
3. Если Form1.NomerKadra.Checked, то переходим к п. 4.
4. nomerkadra(bufer).
5. Если Form1.PustoStr.Checked, то переход к п. 6.
6. pustostroka.
7. Bufer:= '.
8. Inc(m.
9. конец.
Условные обозначения, используемые в описании алгоритма, приведены в таблице 2.4.
Таблица 2.4 - Условные обозначения
|   Название  |    Описание  |  
|   Bufer  |    Переменная хранения строки  |  
|   Inc()  |    Функция увеличение значения  |  
|   DelProbel(bufer);  |    Функция удаления пробелов  |  
|   nomerkadra(bufer);  |    Функция восстановления нумерации кадров  |  
|   pustostroka;  |    Функция удаления пустых строк  |  
 
 
 МГТУ «МАМИ» 
 10-УИ-к-С-9
   
 
 
 
2.4 Разработка алгоритма конвертирования
Алгоритм описывает конвертирование исходного текста программы для станков с ЧПУ. В результате программа пересчитывает все исходные координаты из одной системы программирования в другую.
Алгоритм выполняется по шагам.
1. Если (pos('%', kadr) <> 0) or (pos('$', kadr) <> 0), то переход к п. 28.
2. Если pos('X',kadr) <> 0, то переход к п. 3 иначе к п. 5.
3. NaytiKoordinatu(kadr,'X', vyh).
4. PreobrazovanieMayak(X_nast, kadr).
5. uslovie:= FindVstavki('X', kadr).
6. DobavitTochku(s).
7. insert(Concat('X', s), kadr, uslovie).
8. Если (pos('G42', kadr) <> 0) or (pos('G41', kadr) <> 0), то пер к п. 9.
9. Если pos('X', kadr) = 0, то переход к п. 10.
10. uslovie:= FindVstavki('X', kadr).
11. Insert('X' + s, kadr, uslovie).
12. Если (pos('I', Stroka.Strings[Succ(m)]) <> 0) and (pos('J', Stroka.Strings[Succ(m)]) <> 0), то переход к п. 13 иначе к п. 16.
13. Naytikoordinatu(Stroka.Strings[Succ(m)], 'I', st).
14. Naytikoordinatu(Stroka.Strings[Succ(m)], 'J', st).
15. Podhod_G41_G42_radius.
16. Podhod_G41_G42_line.
17. Если pos('I', kadr) <> 0, то переход к п. 18.
18. NaytiKoordinatu(kadr, 'I', st).
19. PreobrazovanieMayak(X_sled, kadr).
20. uslovie:= pos('I',kadr).
21. Если uslovie <> 0, то переход к п. 22.
22. NaytiKoordinatu(kadr,'I',vyh).
23. Если oshibka = 1, то переход к п. 24.
24. I:= X_pred + I.
25. preobrazovanieMAYAK(I,kadr).
26. X_pred:= X_nast.
27. Y_pred:= Y_nast.
28. конец.
Условные обозначения, используемые в описании алгоритма, приведены в таблице 2.4.
|   Обозначение  |    Расшифровка  |  
|   Kadr  |    Текущая строка обработки  |  
|   NaytiKoordinatu(kadr,'X', vyh).  |    Функция нахождения значения координаты  |  
|   vyh  |    Выходное значение процедуры  |  
|   PreobrazovanieMayak(X_nast, kadr).  |    Функция преобразования координаты  |  
|   X_nast и X_pred  |    Числовая переменная настоящего и предыдущего значения Х  |  
|   uslovie  |    Числовая переменная  |  
|   FindVstavki('X', kadr).  |    Функция поиска вставки значения заданной координаты в строке  |  
|   DobavitTochku(s).  |    Функция вставляет точку в строку, если её нет  |  
|   insert(Concat('X', s), kadr, uslovie).  |    Функция вставляет и сцепляет строки  |  
|   (pos('I', Stroka.Strings[Succ(m)])  |    Функция поиска и проверки заданной позиции в строке  |  
|   Podhod_G41_G42_radius  |    Функция расчёта радиусов на заходах  |  
|   Podhod_G41_G42_line.  |    Функция расчёта линейных заходов  |  
|   I и J  |    Координаты круговой интерполяции в программе  |  
|   Y_nast и Y_pred  |    Числовая переменная настоящего и предыдущего значения Y  |  
Таблица 2.4 – Условные обозначения
Схема алгоритма конвертирования изображена на листе 43.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
NaytiKoordinatu(kadr,'X', vyh);
 
 
 
 
 insert(Concat('X', s), kadr, uslovie);
 PreobrazovanieMayak(X_nast, kadr);
 
 NaytiKoordinatu(kadr,'Y', vyh);
 PreobrazovanieMayak(Y_nast, kadr);
insert(Concat('Y', s), kadr, uslovie);
 
 
 
 
 
 Insert('X' + s, kadr, uslovie);
Insert('Y' + s, kadr, uslovie);
 Podhod_G41_G42_radius;
 
 Podhod_G41_G42_line;
NaytiKoordinatu(kadr,'I',vyh);
preobrazovanieMAYAK(I,kadr);
NaytiKoordinatu(kadr,'J',vyh);
preobrazovanieMAYAK(J,kadr);
 X_pred:= X_nast;
Y_pred:= Y_nast;
 
 
 
 
 
 
 
 
 
 
 
 
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 16
17
18
19
20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
МГТУ «МАМИ»
10-УИ-к-С-9
2.5 Разработка программного обеспечения
Программа-конвертер применяется для автоматизации процесса пересчёта исходного текста (кода) программ для станков с ЧПУ. При этом программа использует человеко-машинный интерфейс: человек выбирает, чем оперировать и параметры обработки данных, а программа выполняет все необходимые расчеты.
Для начала работы следует загрузить текстовый файл (программный код для станка с ЧПУ), и задать параметры его обработки. После этого программа производит пересчёт координат из данной в заданную систему программирования.
Программа разработана в среде программирования Borland Delphi 7.
2.5.1 Функциональное назначение
Программа выполняет конвертирование (пересчёт) исходных координат в заданную систему ЧПУ. Программа использует алгоритмы, описанные в подразделах 2.2-2.4.
Для функционирования программы необходим следующий комплекс технических средств:
-  
процессор Pentium III 500 МГц и выше;
 -  
подсистема занимает около 5 Мб оперативной памяти. Дополнительно к этому программа выделяет дополнительную память под текстовые файлы, загруженные в её оболочку;
 -  
для размещения ОС Windows XP и прикладных задач на жестком диске необходимо минимально 1,5 Гб свободного пространства. На диске программа занимает 625 килобайт памяти. Дополнительное место на диске занимают текстовые файлы используемые программой, а также файлы создаваемые программой. С учетом этого на диске необходимо выделить достаточное пространство для всех файлов (от 10 Мб и выше);
 -  
видеоподсистема с объемом памяти 32 Мб;
 -  
цветной SVGA монитор с диагональю не менее 15’’ и разрешением не ниже 800x600 (рекомендуется 1024x768);
 -  
русифицированная клавиатура;
 -  
манипулятор «мышь».
 
2.5.2 Описание информации
Вся входная и выходная информация – это текстовые файлы, написанные программистом вручную либо сгенерированные специальной графической программой обработки.
2.5.3 Используемые подпрограммы
В программе использованы следующие подпрограммы:
-  
NaytiKoordinatu – нахождения значения заданной координаты;
 -  
DobavitTochku – добавление необходимой точки;
 -  
Podhod_G41_G42_radius – расчёт радиусов при заходе инструмента на эквидистанту контура обрабатываемой детали;
 -  
preobrazovanieVM - преобразует строку, удаляет и вставляет подстроку (система ВМ);
 -  
preobrazovanieMAYAK - преобразует строку, удаляет и вставляет подстроку (система Маяк);
 -  
Podhod_G41_G42_line – расчёт линейных заходов на эквидистанту контура обрабатываемой детали;
 -  
FindVstavki – поиск места вставки заданной координаты;
 -  
DelProbel – удаление всех пробелов;
 -  
Pustostroka – удаление всех пустых строк;
 -  
Nomerkadra – восстановление последовательной нумерации кадров;
 -  
PC_MAYAK – пересчёт координат из системы Синумерик в систему Маяк;
 -  
VM_MAYAK – пересчёт координат из системы ВМ в систему Маяк;
 -  
MAYAK_VM – пересчёт координат из системы Маяк в систему ВМ;
 -  
PC_VM – пересчёт координат из системы Синумерик в систему ВМ;
 
2.6 Контрольный пример
Контрольный пример предназначен для проверки корректности работы программы. В качестве исходных данных использовался текстовый файл программы обработки. В результате обработки (конвертирования) правильной исходной программы получается полностью работоспособная программа для станков с ЧПУ. Обработка подразумевает использование всех методов конвертирования. При использовании заведомо неверных координат и создании исключительных ситуаций выдается сообщение об ошибке.
В результате обработки данных контрольного примера получены текстовые файлы для различных систем программирования. Они проверены и просчитаны вручную и полностью соответствуют выбранной системе конвертирования.
46















