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
plc:управление_шпинделем_подключенным_через_pulse-dir [2018/12/16 17:29] skirillovplc:управление_шпинделем_подключенным_через_pulse-dir [2021/08/24 11:28] (current) ivan
Line 1: Line 1:
 +FIXME //Страница еще не переведена полностью.//
 +
 ===== Управление шпинделем по каналу Pulse-Dir ===== ===== Управление шпинделем по каналу Pulse-Dir =====
  
-Независимый генератор импульсов, реаизованный в myCNC, может быть замешан в канал оси "В".+Независимый генератор импульсов, реализованный в myCNC, может быть замешан в канал оси "В".
  
 Управление независимым генератором осуществляется через запись значений в глобальные переменные 8130-8133. Управление независимым генератором осуществляется через запись значений в глобальные переменные 8130-8133.
Line 13: Line 15:
 | GVAR_GENERATOR_FRQ | 8133 | Заданная частота генератора. \\ Величина (Частота*Множитель) посылается в регистр генератора и сохраняется как "сырое" значение. | | GVAR_GENERATOR_FRQ | 8133 | Заданная частота генератора. \\ Величина (Частота*Множитель) посылается в регистр генератора и сохраняется как "сырое" значение. |
  
-При доступе из элементов GUI (кнопки, строки ввода и тд) удобно использовать регистры множителя и частоты при задании частоты генератора.+При доступе из элементов GUI (кнопки, строки ввода и тд) удобно (и необходимо) использовать регистры множителя и частоты при задании частоты генератора. При изменении значения регистра 8133 (Заданная частота генератора) ПО myCNC автоматически пересчитает значение заданной частоты с учетом заданного множителя и прошлет эти данные в контроллер.
  
-При доступе из Hardware PLC проще использовать запись в регистр "сырого" значения (8130) напрямую и учитывать множитель самостоятельно.+При доступе из Hardware PLC необходимо использовать запись в регистр "сырого" значения (8130) и самостоятельно (в коде PLC) учитывать множитель.
  
 Изначально независимый генератор был реализован для упраления системой импульсного полива, но его можно использовать и для других приложений, таких как управление шпинделем по каналу PULSE-DIR. Изначально независимый генератор был реализован для упраления системой импульсного полива, но его можно использовать и для других приложений, таких как управление шпинделем по каналу PULSE-DIR.
Line 134: Line 136:
  
  
-{{mycnc-spindle-pulse-dir-005.png}} +Тестовые коды для процедур включения шпинделя и регулировки скорости шпинделя 
-{{mycnc-spindle-pulse-dir-006.png}}+ 
 +<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> 
 + 
 + 
 +{{mycnc:mycnc-spindle-pulse-dir-005.png}} 
 +{{mycnc:mycnc-spindle-pulse-dir-006.png}}
  
plc/управление_шпинделем_подключенным_через_pulse-dir.txt · Last modified: 2021/08/24 11:28 by ivan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki