amateur писал(а):
Убей, никак не возьму в толк - как советские инженеры строили станки с чпу на обычных движках постоянного токаВ качестве советского Инженера - могу приоткрыть Вам глаза. На примере собственного опыта.
1) Комп преобразовывает исходную информацию (G-коды, PLT-файлы, и т.п.) во временную последовательность координат (в единицах дискретов энкодера). В нашем случае дискретизация по времени составляла 4 мсек. Чего было достаточно для микронной точности, при интерполяции равноускоренным движением в промежутках. Достаточно потому, что ограничено ускорение движения инструмента. Оно в любом случае ограничено мощностью двигателя и массой. В нашем случае это было 5 м/сек2, скорость - до 1 м/сек, дискрет энкодера - меньше микрона.
2) Система состояла из 5-ти контроллеров Atmega8-16PI, связанных между собой по шине I2C (у них это называется TWI-интерфейс). Один тупо подключался свой порт B к шине данных LPT порта компа. Три других и были контроллерами координаты - формировали ШИМ для двигателя, исходя из данных энкодера и полученных данных от компа (первого контроллера). Пятый - как бы контроллер дискретов, чего-то там включал/выключал по заданному времени (точнее - по точке на траектории движения инструмента)
3) Работа выглядела примерно следующим образом: комп накачивал информацию о траектории в контроллеры движения. У них был буфер секунды на 3 непрерывной работы. Информацию мы передавали экономно -- в виде вторых разностей от траектории, дискретизированной вышеупомянутым образом. Один байт на точку - 768 байт на кольцевой буфер.
Потом комп говорил всем ПОЕХАЛИ, и начинал следить за состоянием буферов в контроллерах движения. Если оставалось меньше, чем на 2 секунды автономной работы - подкачивал до полных 3-х.
4) Контроллеры координаты занимались восстановлением траектории движения из вторых разностей (переданных с компа), интерполяцией на 64 промежуточные точки, считыванием сигналов энкодера и формированием сигнала управления (ШИМ-а) каждые 62.5 мксек (частота ШИМ-а - 16 кГц). Для более точного определения скорости, у меня, всякое изменение сигналов энкодера запускало микросекундный одновибратор, который подключался ко входу ICP1 (Input Capture). Таким образом, считывая сигналы энкодера, я не только восстанавливал координату инструмента, но и время возникновения этой координаты. Если я не забыл предыдущую координату (и время ее возникновения) - тогда я знаю скорость инструмента. А всякие там тахогенераторы идут лесом...
5) Закон регулирования: ПИД-регулятор по скорости, плюс интеграл по координатной ошибке. Это, что касается Feed Back параметров регулирования. Есть еще и Feed Forward параметры. В общем, их там, около 12 штук, хранящихся в EEPROM.
6) И все это прекрасно работает. Уже около десяти лет. Недавно заходил к парням - три таких станка в работе. Хотят еще один, но с 2-х киловаттными движками (предыдущие - на 150 ВТ). И еще очень хотят перейти с LPT на USB.
Правда, нет никаких гарантий, что Большой Брат "не проспит" свои 2 секунды.
Просто потому, что IT-технологии, это технологии, в которых никто никому ничего не должен. Или: всех, кому я должен - я прощаю