plc:управление_шпинделем_подключенным_через_pulse-dir
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
plc:управление_шпинделем_подключенным_через_pulse-dir [2018/12/16 17:29] – skirillov | plc:управление_шпинделем_подключенным_через_pulse-dir [2019/03/27 10:25] – skirillov | ||
---|---|---|---|
Line 1: | Line 1: | ||
===== Управление шпинделем по каналу Pulse-Dir ===== | ===== Управление шпинделем по каналу Pulse-Dir ===== | ||
- | Независимый генератор импульсов, | + | Независимый генератор импульсов, |
Управление независимым генератором осуществляется через запись значений в глобальные переменные 8130-8133. | Управление независимым генератором осуществляется через запись значений в глобальные переменные 8130-8133. | ||
Line 13: | Line 13: | ||
| GVAR_GENERATOR_FRQ | 8133 | Заданная частота генератора. \\ Величина (Частота*Множитель) посылается в регистр генератора и сохраняется как " | | GVAR_GENERATOR_FRQ | 8133 | Заданная частота генератора. \\ Величина (Частота*Множитель) посылается в регистр генератора и сохраняется как " | ||
- | При доступе из элементов GUI (кнопки, | + | При доступе из элементов GUI (кнопки, |
- | При доступе из Hardware PLC проще использовать запись в регистр " | + | При доступе из Hardware PLC необходимо |
Изначально независимый генератор был реализован для упраления системой импульсного полива, | Изначально независимый генератор был реализован для упраления системой импульсного полива, | ||
Line 132: | Line 132: | ||
Если, в нашем случае максимальная частота составляет 750 000, то ускорение должно быть равно этой же величине, | Если, в нашем случае максимальная частота составляет 750 000, то ускорение должно быть равно этой же величине, | ||
+ | |||
+ | |||
+ | Тестовые коды для процедур включения шпинделя и регулировки скорости шпинделя | ||
+ | |||
+ | <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; | ||
+ | |||
+ | timer=0; | ||
+ | proc=plc_proc_spindle; | ||
+ | |||
+ | val=eparam; | ||
+ | if (val> | ||
+ | if (val<0) {val=0;}; | ||
+ | |||
+ | dac01=val; | ||
+ | |||
+ | portclr(OUTPUT_CCW_SPINDLE); | ||
+ | portset(OUTPUT_SPINDLE); | ||
+ | |||
+ | gvarset(7370, | ||
+ | timer=30; | ||
+ | gvarset(7371, | ||
+ | |||
+ | // | ||
+ | // | ||
+ | |||
+ | |||
+ | gvarset(8131, | ||
+ | k=671223; | ||
+ | freq=val*k; //calculate the RAW frequency | ||
+ | if (freq> | ||
+ | gvarset(8130, | ||
+ | |||
+ | |||
+ | //delay after spindle started | ||
+ | timer=spindle_on_delay; | ||
+ | do{timer--; | ||
+ | |||
+ | exit(99); | ||
+ | }; | ||
+ | </ | ||
+ | |||
+ | <code C SPN.plc> | ||
+ | #include vars.h | ||
+ | //set Spindle speed control via DAC | ||
+ | main() | ||
+ | { | ||
+ | val=eparam; | ||
+ | dac01=val; | ||
+ | |||
+ | //Change the Spindle State | ||
+ | gvarset(7371, | ||
+ | |||
+ | s=gvarget(7370); | ||
+ | if (s!=0) //if spindle should be ON | ||
+ | { | ||
+ | k=671223; | ||
+ | freq=val*k; //calculate the RAW frequency | ||
+ | if (freq> | ||
+ | gvarset(8130, | ||
+ | }; | ||
+ | exit(99);// | ||
+ | }; | ||
+ | |||
+ | </ | ||
plc/управление_шпинделем_подключенным_через_pulse-dir.txt · Last modified: 2021/08/24 11:28 by ivan