Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2011, 21:11   #1
Дюйм
 
Регистрация: 21.02.2011
Сообщений: 5
По умолчанию Анализатор кода

Здравствуйте! Возможно людям, искушённым в программировании, всё написанное ниже покажется наивным...Прошу не судить строго.
Работаю на станках с ЧПУ, пишу программы. Есть одна система, которая уже "плешь проела". Синтаксис введённого кода она не проверяет, принимает его "как есть", приходится ошибки искать "вручную", что бывает очень утомительно.
Задумался о создании что-то вроде анализатора программного кода, для помощи в работе. Если честно, не представляю, с чего начать..Прошу совета, помощи. Немного (совсем немного) знаком с Borland Builder С++.
Дюйм вне форума Ответить с цитированием
Старый 21.02.2011, 23:43   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Думаю стоит поискать что-нибудь на тему синтаксический анализ, регулярные выражения и др... Сам работаю с ЧПУ, была мысль что нить подобное сделать, но пока времени не хватает...
counter вне форума Ответить с цитированием
Старый 22.02.2011, 09:03   #3
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

На каком проце контроллер ЧПУ?
Код машинный или Assembler?
Что нужно проверять? Синтаксис исходного кода (асм) или программный код (NEX-код)? А может лучше написать эмулятор контроллера с покомандным прохождением машинного кода?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 22.02.2011, 09:42   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Синтаксис введённого кода она не проверяет, принимает его "как есть", приходится ошибки искать "вручную"
ну, так на каком-то этапе ошибка всё таки вылазит?!

А вообще, думаю, что это не очень сложная задача (не думаю, что синтаксис языка для станка такой уж навороченный )
counter, прав, синтаксический анализатор решит вашу проблему.


Цитата:
Сообщение от Smitt&Wesson
может лучше написать эмулятор контроллера с покомандным прохождением машинного кода?
ну, это вообще замечательно. но сложность, имхо, на пару порядков больше!

Последний раз редактировалось Serge_Bliznykov; 22.02.2011 в 09:50.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.02.2011, 16:59   #5
Дюйм
 
Регистрация: 21.02.2011
Сообщений: 5
По умолчанию

[QUOTE=Serge_Bliznykov;741378]ну, так на каком-то этапе ошибка всё таки вылазит?!

А вообще, думаю, что это не очень сложная задача (не думаю, что синтаксис языка для станка такой уж навороченный )
counter, прав, синтаксический анализатор решит вашу проблему.

То-то и оно, что ошибка "вылазит" на этапе обработки детали, и произойти может всё, что угодно (испортить заготовку, сломать инструмент стоимостью 20-30 тысяч, нет проблем)
Это код ISO, язык самый простой.
Дюйм вне форума Ответить с цитированием
Старый 22.02.2011, 21:48   #6
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Если ошибки выявляются на этапе отработки УП, то тут вам поможет только эмулятор, который будет просчитывать все перемещения и в случае чего выдавать предупреждения. Однако в одиночку вам такой эмулятор ниасилить...
Я как-то видел на просторах интернета пакет T-Flex CAD, но у меня он работать не захотел так что, если есть желание, то можно посмотреть, что это за чудо...
Кстати, какое у вас оборудование стоит? На современные обраб. центры есть много программ, которые созданы для разработки программ для станков с ПУ (начиная от построения модели и просчета перемещения инструмента и заканчивая подготовкой программы для станка), но все равно там все надо смотреть и проверять самому.
counter вне форума Ответить с цитированием
Старый 23.02.2011, 09:15   #7
Дюйм
 
Регистрация: 21.02.2011
Сообщений: 5
По умолчанию

Но это CAD программы (чертёж, модель), для эмуляции обработки нужен CAM модуль. С MastrCAM работал, но есть несколько "но"...
1) На этом месте работы у меня её нет, поставить пиратку возможности нет. Есть T-flex, нет CAM модуля.
2) Использование таких программ оправдано, как правило, на сложных деталях.
3) Нужен постпроцессор...
О современном оборудовании речь не идёт. Я меня есть SIEMENS 840D,тут проблем никаких, а есть ещё произведение "умельца" из НИАТ, называется АТАКА, будь она неладна! Мне не нужно чтобы происходила эмуляция обработки, надо проверять синтаксис. Например: Если я напишу T1 M3 (вместо M6) или G1 X0 Y-10 H0 J0(вместо G2/G3 X0 Y0 I0 J0), выдать сообщение и указать место ошибки.
Дюйм вне форума Ответить с цитированием
Старый 23.02.2011, 09:27   #8
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
T1 M3 (вместо M6) или G1 X0 Y-10 H0 J0(вместо G2/G3 X0 Y0 I0 J0),
Я так понимаю, - это специализированный язык позиционирования элементов станка и к программе самого контроллера он отношения не имеет. Если так, то Вам действительно надо именно эмулятор.
М3 вместо М6. Проверка синтаксиса сдесь не поможет. Синтаксис может быть и верен, а значения аргументов погут приводить к непредсказуемым результатам.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 23.02.2011, 13:13   #9
Дюйм
 
Регистрация: 21.02.2011
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Если так, то Вам действительно надо именно эмулятор.
М3 вместо М6. Проверка синтаксиса сдесь не поможет. Синтаксис может быть и верен, а значения аргументов погут приводить к непредсказуемым результатам.
Я думал, что можно сделать вещь типа проверки правописания в Word, и этим обойтись..Может я, в силу своей неграмотности в области программирования, неверно выражаю свои мысли?
Дюйм вне форума Ответить с цитированием
Старый 23.02.2011, 13:28   #10
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

А как Ворд поймёт, что в "T1 M3" нужно было поставить M6 ? Это всё-равно как заставить Ворд исправить смысловую ошибку в фразе:

Цитата:
Проезжая мимо станции с меня слетела шляпа
Т.е. на основании каких правил вы заменяете "T1 M3" на "T1 M6"? Вот этим правилам и прийдётся обучить ворд или вашу программу.

Есть ведь формальное описание языка? Ну типа

Цитата:
команда T1 управляет левым двигателем правой задвижки. В качестве аргумента ей можно указать М6 (раскрутить двигатель) или М7 (остановить двигатель). Нельзя указывать М1, т.к. это приведёт к тому, что двигатель взорвётся и все люди погибнут.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
анализатор Sparky Паскаль, Turbo Pascal, PascalABC.NET 15 17.12.2010 07:28
Синтаксический анализатор Lifefine Общие вопросы Delphi 3 09.10.2010 19:42
Анализатор! gallion Помощь студентам 2 19.05.2010 09:32
Анализатор текста Xeon332 Помощь студентам 1 14.03.2010 17:24
Логический анализатор NieL Общие вопросы Delphi 1 10.03.2009 13:28