User Tools

Site Tools


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

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
plc:управление_шпинделем_подключенным_через_pulse-dir [2018/12/16 17:29] skirillovplc:управление_шпинделем_подключенным_через_pulse-dir [2019/03/27 10:25] skirillov
Line 1: Line 1:
 ===== Управление шпинделем по каналу Pulse-Dir ===== ===== Управление шпинделем по каналу Pulse-Dir =====
  
-Независимый генератор импульсов, реаизованный в myCNC, может быть замешан в канал оси "В".+Независимый генератор импульсов, реализованный в myCNC, может быть замешан в канал оси "В".
  
 Управление независимым генератором осуществляется через запись значений в глобальные переменные 8130-8133. Управление независимым генератором осуществляется через запись значений в глобальные переменные 8130-8133.
Line 13: Line 13:
 | GVAR_GENERATOR_FRQ | 8133 | Заданная частота генератора. \\ Величина (Частота*Множитель) посылается в регистр генератора и сохраняется как "сырое" значение. | | GVAR_GENERATOR_FRQ | 8133 | Заданная частота генератора. \\ Величина (Частота*Множитель) посылается в регистр генератора и сохраняется как "сырое" значение. |
  
-При доступе из элементов GUI (кнопки, строки ввода и тд) удобно использовать регистры множителя и частоты при задании частоты генератора.+При доступе из элементов GUI (кнопки, строки ввода и тд) удобно (и необходимо) использовать регистры множителя и частоты при задании частоты генератора. При изменении значения регистра 8133 (Заданная частота генератора) ПО myCNC автоматически пересчитает значение заданной частоты с учетом заданного множителя и прошлет эти данные в контроллер.
  
-При доступе из Hardware PLC проще использовать запись в регистр "сырого" значения (8130) напрямую и учитывать множитель самостоятельно.+При доступе из Hardware PLC необходимо использовать запись в регистр "сырого" значения (8130) и самостоятельно (в коде PLC) учитывать множитель.
  
 Изначально независимый генератор был реализован для упраления системой импульсного полива, но его можно использовать и для других приложений, таких как управление шпинделем по каналу PULSE-DIR. Изначально независимый генератор был реализован для упраления системой импульсного полива, но его можно использовать и для других приложений, таких как управление шпинделем по каналу PULSE-DIR.
Line 132: Line 132:
  
 Если, в нашем случае максимальная частота составляет 750 000, то ускорение должно быть равно этой же величине, чтобы "разогнаться" до этой частоты за 1 сек. Если, в нашем случае максимальная частота составляет 750 000, то ускорение должно быть равно этой же величине, чтобы "разогнаться" до этой частоты за 1 сек.
 +
 +
 +Тестовые коды для процедур включения шпинделя и регулировки скорости шпинделя
 +
 +<code C M03.plc>
 +//Turn on Spindle clockwise
 +#include pins.h
 +#include vars.h
 +main()
 +{
 +  command=PLC_MESSAGE_SPINDLE_SPEED_CHANGED;
 +  parameter=eparam;
 +  message=PLCCMD_REPLY_TO_MYCNC;
 +  timer=0;do{timer++;}while (timer<10);//pause to push the message with Spindle Speed data
 +
 +  timer=0;
 +  proc=plc_proc_spindle;
 +
 +  val=eparam;
 +  if (val>0xfff) {val=0xfff;};
 +  if (val<0) {val=0;};
 +
 +  dac01=val;
 +
 +  portclr(OUTPUT_CCW_SPINDLE);
 +  portset(OUTPUT_SPINDLE);
 +
 +  gvarset(7370,1);//Spindle State
 +  timer=30;do{timer--;}while (timer>0); //
 +  gvarset(7371,eparam);//Spindle Speed Mirror register
 +
 +  //gvarset(7372,0);//Mist State
 +  //gvarset(7373,0);//Flood State
 +
 +
 +  gvarset(8131, 500000); timer=30;do{timer--;}while(timer>0); //Задержка на 30мс
 +  k=671223; 
 +  freq=val*k; //calculate the RAW frequency
 +  if (freq>515499348) {freq=515499348;};
 +  gvarset(8130,freq); timer=30;do{timer--;}while(timer>0); //Задержка на 30мс
 +
 +
 +  //delay after spindle started
 +  timer=spindle_on_delay;
 +  do{timer--;}while (timer>0); //delay for Spindle reach given speed
 +
 +  exit(99); //normal exit 
 +};
 +</code>
 +
 +<code C SPN.plc>
 +#include vars.h  
 +//set Spindle speed control via DAC
 +main()
 +{
 +  val=eparam;
 +  dac01=val; //send the value to the DAC register
 +
 +  //Change the Spindle State
 +  gvarset(7371,eparam);  timer=30;do{timer--;}while (timer>0);  //30ms delay
 +
 +  s=gvarget(7370);
 +  if (s!=0) //if spindle should be ON
 +  {
 +    k=671223; 
 +    freq=val*k; //calculate the RAW frequency
 +    if (freq>515499348) {freq=515499348;};
 +    gvarset(8130,freq); timer=30;do{timer--;}while(timer>0); //30ms delay
 +  };
 +  exit(99);//normal exit 
 +};
 +
 +</code>
  
  
plc/управление_шпинделем_подключенным_через_pulse-dir.txt · Last modified: 2021/08/24 11:28 by ivan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki