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 revisionBoth sides next revision
plc:управление_шпинделем_подключенным_через_pulse-dir [2018/12/16 17:29] skirillovplc:управление_шпинделем_подключенным_через_pulse-dir [2018/12/16 17:34] skirillov
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