User Tools

Site Tools


ru:plc:how_to_add_mandatory_homing_after_emergency_button_and-or_servo_ready_alarm

Как добавить обязательный хоуминг по нажатию аварийной кнопки и сигналу Servo ready

Для многих операций ЧПУ очень важно всегда знать точное положение станка. Процедура хоуминга (возврата в исходное положение) используется чтобы найти правильное положение машины, в случаях если есть какая-либо неисправность сервопривода или в ситуациях где была нажата аварийная кнопка.

Процедура хоуминга реализована с помощью Software PLC:

ПРИМЕЧАНИЕ. По умолчанию данная процедура ВЫКЛЮЧЕНА, поскольку в начале процедуры идет строка exit(99);, которая немедленно завершает работу PLC как только процедура запускается. Чтобы включить процедуру хоуминга, добавьте две косые черты перед строкой exit(99);, чтобы закомментировать ее. Таким образом PLC сможет работать корректно:

Флаги хоуминга хранятся в глобальных переменных 7391-7399.

Переменная Функция глобальной переменной
7391 X axis homing flag
7392 Y axis homing flag
7393 Z axis homing flag
7394 A axis homing flag
7395 B axis homing flag
7396 C axis homing flag

Флаги автоматически устанавливаются в «1», если:

  1. Программное обеспечение myCNC только что загружено.
  2. Нажата аварийная кнопка
  3. Сработал соответствующий сигнал готовности сервопривода (Servo ready).

Процедура хоуминга (в Software PLC) мониторит данные флаги и останавливает выполнение G-кода, если какой-либо из флагов установлен в 1.

HOMING_HANDLER.plc
main()
{
 
 //exit(99);
 
 a=0;
 do{
 
 hx=gvarget(7391); //monitor axes flags X, Y, Z and C 
 hy=gvarget(7392) ;
 hz=gvarget(7393);
 //hc=gvarget(7396);
 
 a++; if(a>9){a=1;};
 
 b=hx+hy*10+hz*100;
 //b=hx+hy*10+hz*100+hc*1000;
 c=a*10000000;
 gvarset(99,c+b); //build variable to display which axis is not ready
 
 home_old=home; 
 home=hx+hy+hz; //check if any of axis is not ready
 //home=hx+hy+hz+hc; //check if any of axis is not ready
 
 if (home!=0)  //if any of axis is not ready, then ...
 {
  prg=gvarget(6065); 
  if (prg!=0) //Check if Program running is started and Stop it immediately
   {
	gvarset(0xffffff,1); //Stop Program
   };
 
  gvarset(9100,1); //display the message #1 on the screen, if any of home alarm activated
  gvarset(8160,2); //set XHC Homing display
 
 }else
 {
  gvarset(9100,0); //hide the message #1, if everything's ok
  if (home_old!=home) //just home
   {
     gvarset(8160,0); //set XHC Homing display
   };
};
 
}while(1);
 
exit(99);
};

Запись «1» в глобальную переменную #9100 покажет Popup Message #0 (всплывающее окно №0). Информация, отображаемая во всплывающем сообщении, сохраняется в файле cnc-variables.xml. Программное обеспечение myCNC имеет виджет в настройках для добавления подобных всплывающих окон.

  • Нажмите кнопку “+“, чтобы добавить новое всплывающее окно
  • Popup message # - ID номер всплывающего окна, которое нужно показать/скрыть. В программе зарезервированы переменные №9100-9200 для отображения подобных окон.
    Например, переменная №9114 используется для отображения всплывающего сообщения под номером 14
  • Position X, Y - используется для определения положения всплывающего окна на экране. Всплывающее окно по умолчанию будет показано в центре, если значение Position x,y не определено.
  • Size - определяет размер всплывающего окна.
  • Header, Message, Footer - виджет всплывающего сообщения содержит 3 раздела для отображения вашего сообщения. Вы можете определить текст для каждого раздела (заголовок, основное сообщение, нижний футер). Также можно задать размер раздела (ширина, высота) и размер шрифта.
  • Button Image, Size, Action - во всплывающем сообщении может быть кнопка в нижней части окна. Файл для изображения этой кнопки, размер кнопки и привязанная к ней команда должны быть корректно определены, чтобы кнопка появилась во всплывающем окне.
  • Hide timeout - (в разработке) всплывающее сообщение может исчезнуть автоматически по истечении заданного времени.
  • Variable - одна из текстовых секций может содержать переменную в стиле C для выдачи значения данной переменной. Например, переменная №99 будет напечатана в разделе «Footer», как показано на скриншоте выше.
  • K - коэффициент для вывода значения переменной. Например, если «K = 0,001», в то время как значение переменной равно «5000», то на экране будет выведено «5» (5000 * 0,001 = 5).

Пример всплывающего окна показан ниже:

Ниже приводится описание подобного окна в XML для тех, кто предпочитает редактировать XML-файлы напрямую. Для большинства пользователей в этом нет необходимости, поскольку данный функционал можно использовать и настраивать напрямую из программы myCNC:

 <value name="cnc-popup-message-0" 
 width="600" height="300" 
 buttonImage="machine-home-find-all" buttonWidth="80"
 buttonHeight="80" buttonAction="direct-run:M138" 
 header="Machine position lost due to either Emergency Stop or Servo Alarm" 
 headerHeight="40" headerFontSize="16" 
 message="Please run Homing" fontSize="20" 
 footer="[%d]" footerFontSize="20" footerHeight="20" 
 timeout="5" dest="cnc-gvariable-99" K="1">0</value>

Всплывающее сообщение может содержать кнопку. У кнопки есть атрибуты

  • buttonImage - изображение (skin) для кнопки
  • buttonWidth - ширина кнопки в пикселях
  • buttonHeight - высота кнопки в пикселях
  • buttonAction - действие (команда) при нажатия кнопки

Любой из разделов подобного окна может отображать значение глобальной переменной, чтобы показать, например, текущее состояние или какой-либо таймер.

  • Атрибут dest определяет, какую именно переменную следует отображать
  • Атрибут K определяет коэффициент отображения для значения переменной
  • сообщение раздела должно содержать строку по формату C, например, ”%d” будет печатать значение только как целое число.

Как отключить всплывающее окно

Процедура хоуминга, как описывается выше, сделана через “HOMING_HANDLER.plc”, в Software PLC.

Если вам нужно отключить процедуру и полностью удалить всплывающие сообщения, добавьте команду

exit(99);

в начало процедуры «HOMING_HANDLER». По умолчанию данная строка закомментирована, и вы можете просто удалить символы комментария.

Чтобы изменения вступили в силу, вам нужно будет нажать кнопку «Сохранить код» и перезапустить программу.

Хоуминг ВЫКЛЮЧЕН:

main()
{
 exit(99);
 ....

Хоуминг ВКЛЮЧЕН:

main()
{
 //exit(99);
 ....
ru/plc/how_to_add_mandatory_homing_after_emergency_button_and-or_servo_ready_alarm.txt · Last modified: 2021/05/05 09:36 by ivan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki