User Tools

Site Tools


plc:управление_шпинделем_подключенным_через_pulse-dir

This is an old revision of the document!


Управление шпинделем по каналу Pulse-Dir

Независимый генератор импульсов, реаизованный в myCNC, может быть замешан в канал оси “В”.

Управление независимым генератором осуществляется через запись значений в глобальные переменные 8130-8133. Назначение регистров независимого геренатора описано в таблице ниже.

Имя регистра Адрес Назначение
GVAR_GENERATOR_FRQ_RAW 8130 “Сырое значение” частоты задания независимого генератора испульсов, [ед.]
1 ед. = 0.0014549 Герц
GVAR_GENERATOR_ACCEL 8131 Ускорение (скорость изменения частоты) независимого генератора, [ед.]
1 ед. = 1.4549 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.plc) и изменения скорости шпинделя (SPN.plc) значение скорости шпинделя приходит в переменной eparam.

myCNC контроллеры имеют 12-бит регистры для значений ШИМ и ЦАП 0-10В. Это означает, что при максимальной скорости шпинделя в “24000 об/мин” и коэффициенте “1” в переменной eparam будет максимальное значение в 4095.

Допустим, что максимальная скорость серво-шпинделя составляет 4500 об/мин. Тогда значение eparam на скорости в 4500 об/мин составит

 4500 * (4095/24000) = 768

Pulse-Dir вход сервошпинделя настроен на 10000 импульсов, то есть вал двигателя сделает полный оборот при 10000 импульсах. Тогда для достижения полной скорости 4500 об/мин необходима частота пульсов

10000 * (4500/60) = 750 000

Значение “RAW” регистра для частоты 750кГц (750000Гц) должно быть

 750000/0.0014549=515499347

Если максимальная скорость соответствует величине eparam “768”, то значение коэффициента для получения “515499347” будет

515499347/768=671223

Установив эти величины в PLC процедуры M03.plc и SPN.plc мы получим генерацию на необходимой частоте 750кГц при установке скорости шпинделя 4500, а также плавную регулировку частоты во всем диапазоне от 0 до 4500 об/мин.

Метод оценки необходимого ускорения генератора.

Единица задания Ускорения генератора по очень грубому приближению составляет 1 имп/с2. Это означает, что при таком ускорении до частоты в 1Гц генератор “разгонится” за 1сек.

Если, в нашем случае максимальная частота составляет 750 000, то ускорение должно быть равно этой же величине, чтобы “разогнаться” до этой частоты за 1 сек.

plc/управление_шпинделем_подключенным_через_pulse-dir.1544999378.txt.gz · Last modified: 2018/12/16 17:29 by skirillov

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki