This is an old revision of the document!
Управление шпинделем по каналу Pulse-Dir
Независимый генератор импульсов, реаизованный в myCNC, может быть замешан в канал оси “В”.
Управление независимым генератором осуществляется через запись значений в глобальные переменные 8130-8133. Назначение регистров независимого геренатора описано в таблице ниже.
Имя регистра | Адрес | Назначение |
---|---|---|
GVAR_GENERATOR_FRQ_RAW | 8130 | “Сырое значение” частоты задания независимого генератора испульсов, [ед.] 1 ед. = 0.000736 Герц |
GVAR_GENERATOR_ACCEL | 8131 | Ускорение (скорость изменения частоты) независимого генератора, [ед.] 1 ед. = 0.736 1/c2 |
GVAR_GENERATOR_FRQ_RATIO | 8132 | Множитель частоты независимого генератора |
GVAR_GENERATOR_FRQ | 8133 | Заданная частота генератора. Величина (Частота*Множитель) посылается в регистр генератора и сохраняется как “сырое” значение. |
При доступе из элементов GUI (кнопки, строки ввода и тд) удобно использовать регистры множителя и частоты при задании частоты генератора.
При доступе из Hardware PLC проще использовать запись в регистр “сырого” значения (8130) напрямую и учитывать множитель самостоятельно.
Изначально независимый генератор был реализован для упраления системой импульсного полива, но его можно использовать и для других приложений, таких как управление шпинделем по каналу PULSE-DIR.
Пример реализации.
1. Добавить код включения генератора в Hardwre PLC процедуру включения шпинделя - M03.plc. Код удобно добавить в конец процедуры перед вызовом exit(99)
//Установить ускорение генератора gvarset(8131, 100000); timer=30;do{timer--;}while(timer>0); //Задержка на 30мс //Преобразовать задание скорости шпинделя в частоту. //Величина коэффициента подбирается таким образом, чтобы преобразовать //12-битовое значение скорости шпинделя в частоту генератора k=123456; freq=eparam*k; //Посчитать "сырое" значение частоты генератора //Послать значение частоты генератора gvarset(8130,freq); timer=30;do{timer--;}while(timer>0); //Задержка на 30мс exit(99); //normal exit
2. Добавить код включения генератора в Hardwre PLC процедуру регулировки скорости шпинделя - SPN.plc.
//Установить ускорение генератора gvarset(8131, 100000); timer=30;do{timer--;}while(timer>0); //Задержка на 30мс //Преобразовать задание скорости шпинделя в частоту. //Величина коэффициента подбирается таким образом, чтобы преобразовать //12-битовое значение скорости шпинделя в частоту генератора k=123456; freq=eparam*k; //Посчитать "сырое" значение частоты генератора //Послать значение частоты генератора gvarset(8130,freq); timer=30;do{timer--;}while(timer>0); //Задержка на 30мс exit(99); //normal exit
3. Добавить код выключения генератора в Hardwre PLC процедуру выключения шпинделя - M05.plc. Код также удобно добавить в конец процедуры перед вызовом exit(99)
//Послать значение частоты генератора gvarset(8130,0); timer=30;do{timer--;}while(timer>0); //Задержка на 30мс exit(99); //normal exit
Скриншоты примера реализации
В данной реализации генерация PULSE-DIR будет включаться вместе и одновременно с классическим управлением (реле + 0-10В аналоговый выход). Предполагается, что неиспользуемый шпиндель будет отключаться физически и дополнительный сигнал управления не будет влиять на работу.
Если стоит задача подключить одновременно оба шпинделя и переключать их в процессе работы (например по номеру инструмента), то надо организовывать более сложную PLC процедуру, в которой осуществлять проверку номера инструмента, значения глобальной переменной или входа контроллера и по этому условию включать только один из шпинделей.
Возьмем например, что скорость обычного шпинделя составляет 24000 об/мин. Эта величина, соответственно, прописана как максимальная скорость шпинделя в настройках
При этой скорости шпинделя на аналоговый выход необходимо выдать полный сигнал 10В, поэтому коэффициент “voltage ratio” выставлен в “1” (в сучае, например, шпинделя с диапазоном входного сигнала 0-5В, этот коэффициент был бы 0.5, чтобы на масимальной скорости получить сигнал 5В).
При вызове процедур PLC включения шпинделя (М03) и изменения скорости шпинделя (SPN.plc) dеличина скорости шпинделя приходит в переменной eparam. myCNC коннтроллеры имеют 12-бит регистры для значений ШИМ и ЦАП 0-10В. Это означает, что при максимальной скорости шпинделя в “24000 об/мин” и коэффициенте “1” в переменной eparam будет максимальное значение в 4095.
Допустим, что максимальная скорость серво-шпинделя составляет 4500 об/мин. Тогда значение eparam на скорости в 15000 об/мин составит
15000 * (4095/24000) = 2559
Pulse-Dir вход сервошпинделя настроен на 10000 импульсов, то есть вал двигателя сделает полный оборот при 10000 импульсах. Тогда для достижения полной скорости 4500 об/мин необходима частота пульсов
10000 * (4500/60) = 750 000