Разбираемся в софте контроллеров mycnc
- Umnik
- Мастер
- Сообщения: 2563
- Зарегистрирован: 20 июл 2014, 19:32
- Репутация: 2153
- Настоящее имя: Георгий
- Откуда: Калуга
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
М03:
//Turn on Spindle clockwise
//set Spindle speed through DAC channel
//*****************************************************
//The following variables Should be defined outside
//OUTPUT_CCW_SPINDLE
//OUTPUT_SPINDLE
//SPINDLE_ON_DELAY
//*****************************************************
#include common.const.h
#include pins.h
#include vars.h
main()
{
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);
command=PLC_MESSAGE_SPINDLE_SPEED_CHANGED;
parameter=eparam;
message=PLCCMD_REPLY_TO_MYCNC;
timeout=timer+10;do{timer++;}while (timer<timeout);
//pause to push the message with Spindle Speed data
//delay after spindle started
timeout=timer+spindle_on_delay;
do{timer++;}while (timer<timeout); //delay for Spindle reach given speed
gvarset(7370,1);
gvarset(7371,eparam);
exit(99); //normal exit
};
М08:
#include common.const.h
#include pins.h
//*****************************************************
//The following variables Should be defined outside
//OUTPUT_FLOOD
//*****************************************************
main()
{
gvarset(7372,1);
portset(OUTPUT_FLOOD);
exit(99); //normal exit
};
М07:
#include common.const.h
#include pins.h
//*****************************************************
//The following variables Should be defined outside
//OUTPUT_MIST
//*****************************************************
main()
{
gvarset(7373,1);
portset(OUTPUT_MIST);
exit(99); //normal exit
};
Часть кода cnc-screen.xml, отвечающая за кнопки М03-М09:
<gitem where="magic" xattr="60;4;16;16;led;red;round" address="outputs" number="0" position="1200;0" width="80" height="80" image="button-m03" action="plc-run:M03/#5524" type="xbutton"/>
<gitem where="magic" xattr="60;4;16;16;led;red;round" address="outputs" number="0" position="1200;80" width="80" height="80" image="button-m04" action="plc-run:M04/#5524" type="xbutton"/>
<gitem where="magic" position="1200;160" width="80" height="80" image="button-m05" action="plc-run:M05/0" type="button"/>
<gitem where="magic" position="1200;240" width="80" height="80" image="button-m06" action="run-numpad:direct-run:M06 T%v" type="button"/>
<gitem where="magic" xattr="60;4;16;16;led;red;round" address="outputs" number="0" position="1200;320" width="80" height="80" image="button-m07" action="plc-run:M07/0" type="xbutton"/>
<gitem where="magic" xattr="60;4;16;16;led;red;round" address="outputs" number="0" position="1200;400" width="80" height="80" image="button-m08" action="plc-run:M08/0" type="xbutton"/>
<gitem where="magic" position="1200;480" width="80" height="80" image="button-m09" action="plc-run:M09/0" type="button"/>
//Turn on Spindle clockwise
//set Spindle speed through DAC channel
//*****************************************************
//The following variables Should be defined outside
//OUTPUT_CCW_SPINDLE
//OUTPUT_SPINDLE
//SPINDLE_ON_DELAY
//*****************************************************
#include common.const.h
#include pins.h
#include vars.h
main()
{
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);
command=PLC_MESSAGE_SPINDLE_SPEED_CHANGED;
parameter=eparam;
message=PLCCMD_REPLY_TO_MYCNC;
timeout=timer+10;do{timer++;}while (timer<timeout);
//pause to push the message with Spindle Speed data
//delay after spindle started
timeout=timer+spindle_on_delay;
do{timer++;}while (timer<timeout); //delay for Spindle reach given speed
gvarset(7370,1);
gvarset(7371,eparam);
exit(99); //normal exit
};
М08:
#include common.const.h
#include pins.h
//*****************************************************
//The following variables Should be defined outside
//OUTPUT_FLOOD
//*****************************************************
main()
{
gvarset(7372,1);
portset(OUTPUT_FLOOD);
exit(99); //normal exit
};
М07:
#include common.const.h
#include pins.h
//*****************************************************
//The following variables Should be defined outside
//OUTPUT_MIST
//*****************************************************
main()
{
gvarset(7373,1);
portset(OUTPUT_MIST);
exit(99); //normal exit
};
Часть кода cnc-screen.xml, отвечающая за кнопки М03-М09:
<gitem where="magic" xattr="60;4;16;16;led;red;round" address="outputs" number="0" position="1200;0" width="80" height="80" image="button-m03" action="plc-run:M03/#5524" type="xbutton"/>
<gitem where="magic" xattr="60;4;16;16;led;red;round" address="outputs" number="0" position="1200;80" width="80" height="80" image="button-m04" action="plc-run:M04/#5524" type="xbutton"/>
<gitem where="magic" position="1200;160" width="80" height="80" image="button-m05" action="plc-run:M05/0" type="button"/>
<gitem where="magic" position="1200;240" width="80" height="80" image="button-m06" action="run-numpad:direct-run:M06 T%v" type="button"/>
<gitem where="magic" xattr="60;4;16;16;led;red;round" address="outputs" number="0" position="1200;320" width="80" height="80" image="button-m07" action="plc-run:M07/0" type="xbutton"/>
<gitem where="magic" xattr="60;4;16;16;led;red;round" address="outputs" number="0" position="1200;400" width="80" height="80" image="button-m08" action="plc-run:M08/0" type="xbutton"/>
<gitem where="magic" position="1200;480" width="80" height="80" image="button-m09" action="plc-run:M09/0" type="button"/>
-
vektor_z
- Мастер
- Сообщения: 405
- Зарегистрирован: 30 ноя 2014, 16:45
- Репутация: 387
- Настоящее имя: Василий
- Откуда: Украина. Закарпатская обл.
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
Впринципе можете скопировать текст из PLC и закинуть сюда под спойлер, а так же еще из файла pins.h
Да cnc-screen.xml
Да cnc-screen.xml
-
vektor_z
- Мастер
- Сообщения: 405
- Зарегистрирован: 30 ноя 2014, 16:45
- Репутация: 387
- Настоящее имя: Василий
- Откуда: Украина. Закарпатская обл.
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
а содержимое файла pins.h?
-
vektor_z
- Мастер
- Сообщения: 405
- Зарегистрирован: 30 ноя 2014, 16:45
- Репутация: 387
- Настоящее имя: Василий
- Откуда: Украина. Закарпатская обл.
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
выделенное красным отвечает за индикацию кнопки, number=ХХ нужно прописать номер выхода релеUmnik писал(а):<gitem where="magic" xattr="60;4;16;16;led;red;round" address="outputs" number="0" position="1200;0" width="80" height="80" image="button-m03" action="plc-run:M03/#5524" type="xbutton"/>
- Umnik
- Мастер
- Сообщения: 2563
- Зарегистрирован: 20 июл 2014, 19:32
- Репутация: 2153
- Настоящее имя: Георгий
- Откуда: Калуга
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
Извиняюсь, пропустил.
pins.h
//input/output definitions
//outputs
//inputs
//Output relays
#define OUTPUT_SPINDLE 0
#define OUTPUT_MIST 4
#define OUTPUT_TOOL_CLAMP 2
#define OUTPUT_OIL 3
#define OUTPUT_CCW_SPINDLE 10
#define OUTPUT_FLOOD 1
pins.h
//input/output definitions
//outputs
//inputs
//Output relays
#define OUTPUT_SPINDLE 0
#define OUTPUT_MIST 4
#define OUTPUT_TOOL_CLAMP 2
#define OUTPUT_OIL 3
#define OUTPUT_CCW_SPINDLE 10
#define OUTPUT_FLOOD 1
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
Да... С настройкой mycnc справится любая домохозяйка... 
И всякие дополнительные фичи там делаются по желанию "критической массы"...
И всякие дополнительные фичи там делаются по желанию "критической массы"...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Umnik
- Мастер
- Сообщения: 2563
- Зарегистрирован: 20 июл 2014, 19:32
- Репутация: 2153
- Настоящее имя: Георгий
- Откуда: Калуга
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
выходит, что если у всех кнопок прописан пин №0, то вот они все и загораются, когда этот пин (включение шпинделя) активируется.vektor_z писал(а):выделенное красным отвечает за индикацию кнопки, number=ХХ нужно прописать номер выхода реле
Тогда для М8 надо прописать пин №1, на который хочу посадить включение СОЖ...
С этим вроде ясно, спасибо!
Как внести изменения в pins.h, чтобы они вступили в силу?
- Umnik
- Мастер
- Сообщения: 2563
- Зарегистрирован: 20 июл 2014, 19:32
- Репутация: 2153
- Настоящее имя: Георгий
- Откуда: Калуга
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
UAVpilot, если б по тому же килофлопу не было замечательной темы, думаю, с ним возни было бы еще больше))
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
Возможно, ни разу не пробовал kflop.Umnik писал(а):UAVpilot, если б по тому же килофлопу не было замечательной темы, думаю, с ним возни было бы еще больше))
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
vektor_z
- Мастер
- Сообщения: 405
- Зарегистрирован: 30 ноя 2014, 16:45
- Репутация: 387
- Настоящее имя: Василий
- Откуда: Украина. Закарпатская обл.
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
общая переменная OUTPUT_FLOOD которой присвоен выходной пин 1, можно заменить на любой нужный пин.Umnik писал(а):#define OUTPUT_FLOOD 1
После редактирования PLC файлов нужно перекомпелировать и сохранить, тоесть нажать на кнопочку молоточек и дискетка.
- Umnik
- Мастер
- Сообщения: 2563
- Зарегистрирован: 20 июл 2014, 19:32
- Репутация: 2153
- Настоящее имя: Георгий
- Откуда: Калуга
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
Василий, спасибо большое за помощь, завтра буду в мастерской у компа, попробую все как ты сказал.
В принципе, сегодня я так и делал, но не знал, что прогу надо перезапустить при этом.
Ещё раз спасибо!
В принципе, сегодня я так и делал, но не знал, что прогу надо перезапустить при этом.
Ещё раз спасибо!
-
vektor_z
- Мастер
- Сообщения: 405
- Зарегистрирован: 30 ноя 2014, 16:45
- Репутация: 387
- Настоящее имя: Василий
- Откуда: Украина. Закарпатская обл.
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
Команда portclr() - Отключает пин. В скобках пишется или общая переменная или номер выходного пинаUmnik писал(а): portclr(OUTPUT_CCW_SPINDLE);
portset(OUTPUT_SPINDLE);
Команда portset() - Включает пин.
Для простоты восприятия можно записать так:
portset(1) - включит пин 1
portclr(1) - выключит пин 1
Последний раз редактировалось vektor_z 14 фев 2018, 22:59, всего редактировалось 2 раза.
-
vektor_z
- Мастер
- Сообщения: 405
- Зарегистрирован: 30 ноя 2014, 16:45
- Репутация: 387
- Настоящее имя: Василий
- Откуда: Украина. Закарпатская обл.
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
Прогу нужно перезапускать только после редактировании скринсетаUmnik писал(а):В принципе, сегодня я так и делал, но не знал, что прогу надо перезапустить при этом.
- Umnik
- Мастер
- Сообщения: 2563
- Зарегистрирован: 20 июл 2014, 19:32
- Репутация: 2153
- Настоящее имя: Георгий
- Откуда: Калуга
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
Ну, что с документацией у mycnc не густо, отрицать глупо. Хотя очень многое есть онлайн на сайте, надо просто уметь читать, по сути..UAVpilot писал(а):Возможно, ни разу не пробовал kflop.Umnik писал(а):UAVpilot, если б по тому же килофлопу не было замечательной темы, думаю, с ним возни было бы еще больше))Но при беглом осмотре документации обнаружено сильно больше.
Ну и вроде как вопрос решается с написанием в настоящий момент.
Тут ещё стоит отметить, что я не программист ни разу, муцнц по сути первая моя ЧПУ софтина, если не считать ломаную цнц-планет, где даже шпиндель я включал с панели частотника.
И тем не менее, как видно, даже для таких "мастеров", как я, практически все решаемо.
Очень оперативно отвечает Сергей, и что не мало важно - на русском языке.
Почему то мне кажется, задавай я вопросы автору того же кфлопа, мы бы ещё месяц пытались бы понять друг друга)))
А так mycnc работает практически из коробки, а какие то дополнительные моменты постепенно будут проясняться, в том числе и с помощью данной темы.
- Umnik
- Мастер
- Сообщения: 2563
- Зарегистрирован: 20 июл 2014, 19:32
- Репутация: 2153
- Настоящее имя: Георгий
- Откуда: Калуга
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
И.е. чисто теоретически, вместо переменной можно просто прописать номер пина и все.vektor_z писал(а):Команда portclr() - Отключает пин. В скобках пишется или общая переменная или номер выходного пинаUmnik писал(а): portclr(OUTPUT_CCW_SPINDLE);
portset(OUTPUT_SPINDLE);
Команда portset() - Включает пин.
Для простоты восприятия можно записать так:
portset(1) - включит пин 1
portclr(1) - выключит пин 1
Но Сергей писал вроде, что с позиции умных книг по программированию это не совсем правильно))
А OUTPUT_CCW_SPINDLE - это что такое?
-
vektor_z
- Мастер
- Сообщения: 405
- Зарегистрирован: 30 ноя 2014, 16:45
- Репутация: 387
- Настоящее имя: Василий
- Откуда: Украина. Закарпатская обл.
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
Контроллеры myCNC и софт постоянно обновляются и ведутся новые разработки,подробная документация по настройке софта очень быстро становится не актуальна так как в софте появляется много глобальных изменений.UAVpilot писал(а):Возможно, ни разу не пробовал kflop. Но при беглом осмотре документации обнаружено сильно больше.
- niksooon
- Мастер
- Сообщения: 2144
- Зарегистрирован: 23 июн 2014, 23:18
- Репутация: 1207
- Откуда: Кашира
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
там еще чуть ниже кнопка есть- иконка со стрелкой ,её тоже надоть нажать чтобы перепрошить PLC контроллера...............vektor_z писал(а):После редактирования PLC файлов нужно перекомпелировать и сохранить, тоесть нажать на кнопочку молоточек и дискетка.
Сделанное правильно — красиво. Если сделанное тебе не нравится — то и работать оно будет хреново. Перевари, пересверли, выпили заново — ну, или хотя бы покрась.
- niksooon
- Мастер
- Сообщения: 2144
- Зарегистрирован: 23 июн 2014, 23:18
- Репутация: 1207
- Откуда: Кашира
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
М4 ,включение вращения шпинделя против часовой.....Umnik писал(а): OUTPUT_CCW_SPINDLE - это что такое?
Сделанное правильно — красиво. Если сделанное тебе не нравится — то и работать оно будет хреново. Перевари, пересверли, выпили заново — ну, или хотя бы покрась.
-
vektor_z
- Мастер
- Сообщения: 405
- Зарегистрирован: 30 ноя 2014, 16:45
- Репутация: 387
- Настоящее имя: Василий
- Откуда: Украина. Закарпатская обл.
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
Да, не спорю, переменная все же правильнее будет...Umnik писал(а):Но Сергей писал вроде, что с позиции умных книг по программированию это не совсем правильно))
А OUTPUT_CCW_SPINDLE - это что такое?
OUTPUT_CCW_SPINDLE - переменная обратного вращения шпинделя.. На инверторе есть входной пин для реверса, туда можно подключить этот пин, и при нажатии М4 шпиндель будет вращаться в обратном направлении.
- Umnik
- Мастер
- Сообщения: 2563
- Зарегистрирован: 20 июл 2014, 19:32
- Репутация: 2153
- Настоящее имя: Георгий
- Откуда: Калуга
- Контактная информация:
Re: Разбираемся в софте контроллеров mycnc
niksooon, vektor_z, спасибо большое за помощь, все заработало, как надо!
по умолчанию в контроллере одно реле настроено на включение шпинделя по часовой, второе - против часовой.
Теперь же одно крутит шпиндель по часовой, а одно включает М8.
по умолчанию в контроллере одно реле настроено на включение шпинделя по часовой, второе - против часовой.
Теперь же одно крутит шпиндель по часовой, а одно включает М8.