User Tools

Site Tools


mycnc:popup_messages

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
mycnc:popup_messages [2020/05/19 14:10]
ivan
mycnc:popup_messages [2020/05/28 12:26] (current)
ivan
Line 1: Line 1:
-FIXME - WORK IN PROGRESS 
- 
 ====== Popup messages ====== ====== Popup messages ======
 +
 +{{youtube>​uq1Rk6kRHL8?​large}}
  
 This is an expanded manual that serves to introduce the user to the concept of popup messages beyond the basics described in the [[mycnc:​mycnc_configuration_dialogs|MyCNC Configuration Dialogs]] manual. ​ This is an expanded manual that serves to introduce the user to the concept of popup messages beyond the basics described in the [[mycnc:​mycnc_configuration_dialogs|MyCNC Configuration Dialogs]] manual. ​
Line 25: Line 25:
   * Coefficient K to multiply the variable by. Useful to convert tiny incremental changes (such as fractions of a second) or large rapidly changing numbers into numbers that can be easily read by the user.    * Coefficient K to multiply the variable by. Useful to convert tiny incremental changes (such as fractions of a second) or large rapidly changing numbers into numbers that can be easily read by the user. 
  
 +Popup messages are controlled by writing a **1** or a **0** into global variables #9100-9163 (1 to bring up the popup, 0 to close it). Therefore, the user can set up to 64 possible popup messages within the myCNC software by going into Settings > Config > Screen > Popup Messages and assigning the necessary messages there. Afterwards, the message can be brought up either through a PLC procedure, like so:
 +
 +<​code>​gvarset(9160,​1);</​code>​
 +
 +or by using a G-code command (for example, within a macro) such as
 +
 +<​code>​G10 L80 P9160 Q1</​code>​
 +
 +which will write a 1 in the global variable #9160.
 +
 +====Examples of popup messages implementation====
 +
 +===M660===
 +
 +M660 PLC procedure is supposed to be a handler for manual tool change. It shows a "​Manual Tool Change"​ message, then waits in a loop till tool changed. There can be a software flag (global variable register) indicating tool changed or
 +the procedure can wait till a hardware button (connected to the controller input) is pressed. Below is an example of a manual tool change handler M660.plc:
 +
 +<​code>​main()
 +{
 +  gvarset(1999,​1);​ //set flag
 +  ​
 +  timer=0;
 +  flag=1;
 +  do{
 +    timer++;
 +    if ((timer&​0xff)==0) //check every 0.25 sec
 +    {
 +      gvarset(9160,​1);​ //show the Manual Tool Change Message #60
 +      flag=gvarget(1999);​ //check the flag, if flag<=0, then tool changed and a job should be resumed
 +    };
 + 
 +  }while(flag>​0);​
 +
 +  gvarset(9160,​0);​ //clear the Message
 +  exit(99);
 +};
 +</​code>​
 +
 +Setup for message #60 in Settings > Config > Screen > Popup Messages:
 +
 +{{:​mycnc:​popup-messages-001-f.png}}
 +
 +Resulting popup message:
 +
 +{{:​mycnc:​popup-messages-002-f.png}}
 +
 +===M604===
 +
 +<​code>#​include pins.h
 +main()
 +{
 +  //clamp new tool
 +  portclr(OUTPUT_TOOL_CLAMP);​
 +
 +  timer=300;​do{timer--;​}while(timer>​0);​
 +
 +  timer=2000;
 +  do
 +  {
 +    timer--;
 +    t=portget(INPUT_TOOL_CLAMPED);//​ 5
 +    if (t!=0)
 +    {
 +      exit(99);
 +    };
 +  }while(timer>​0);​
 +
 +  gvarset(9124,​1);​
 +  timer=20;​do{timer--;​}while(timer>​0);​
 +
 +  message=PLCCMD_MOTION_BREAK;​
 +  timer=20;​do{timer--;​}while(timer>​0);​
 +
 +
 +  exit(99);
 +};</​code>​
mycnc/popup_messages.1589911844.txt.gz ยท Last modified: 2020/05/19 14:10 by ivan