CNCzone.com-The Largest Machinist Community on the net!



Home Page Mark Forums Read Today's Posts My Replies Classifieds Reviews Photo Gallery Web Links Share Files Advertise With Us Ad List
Go Back   CNCzone.com-The Largest Machinist Community on the net! > CAM Software > General CAM Discussion


General CAM Discussion Discuss CAD/CAM software and Design software methods here!


This forum is sponsored by:

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Ban this user!
Old 12-29-2005, 12:19 PM
 
Join Date: Dec 2004
Location: USA
Posts: 12
GeorgeRudd is on a distinguished road
How can I execute an m-code in the middle of a toolpath?

What I am trying to do should be very simple. I am trying to draw a straight line and while the line is being drawn I am trying to send m-code commands that turn a pump/dispenser on and off. Is this possible?

I tried to insert the m-code command in between two lines of X/Y commands but it caused a slight delay and subsequently, an unwanted buildup of fluid where the gantry paused momentarily.

Here are a few lines of code from the tests that I have done. This test caused a delay when turning the pump off.

> N21 M1[Dispenser On]
> N22 G1 X21.0802 F200.0
> N23 M2[Dispenser Off]
> N24 G1 X40.0802 F200.0
Reply With Quote

  #2  
Old 12-29-2005, 12:36 PM
HuFlungDung's Avatar
Moderator
 
Join Date: Mar 2003
Location: Canada
Posts: 4,825
HuFlungDung is on a distinguished road

What kind of controller is this? Can you write your own logic for the G and M codes?

M1 and M2 are typically reserved for special functions in gcode programs. I wonder if a conflict in logic could be occurring? M1 is pause and M2 is program end. Use perhaps M8 and M9 (typically assigned to coolant), but not M1, M2, M3, M4, M5, M6, or M30
__________________
First you get good, then you get fast. Then grouchiness sets in.

(Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)
Reply With Quote

  #3   Ban this user!
Old 12-29-2005, 01:06 PM
 
Join Date: Dec 2004
Location: USA
Posts: 12
GeorgeRudd is on a distinguished road

We have a Camtech CMCIII table and controller.

I do not think that the pause is a conflict issue but I can do a test with an alternative m-code command that is designated for turning the dust collection system on and off. If there is no pause with the dust collection command that I think that you would be correct regarding the cause of the delay.
Reply With Quote

  #4   Ban this user!
Old 12-29-2005, 01:23 PM
 
Join Date: Dec 2004
Location: USA
Posts: 12
GeorgeRudd is on a distinguished road

I just did a test using the m-code for the dust collector and it caused the same momentary pause when it executed the off command.

>N21 M8 [Dust Collection ON]
>N22 G1 X21.0802 F200.0
>N23 M9[Dust Collection OFF]
>N24 G1 X40.0802 F200.0
Reply With Quote

  #5  
Old 12-29-2005, 01:37 PM
HuFlungDung's Avatar
Moderator
 
Join Date: Mar 2003
Location: Canada
Posts: 4,825
HuFlungDung is on a distinguished road

Okay, if that is too much pause, then I think I understand what you are trying to get at.

When two motion commands are interrupted with an Mcode, most likely the controller is going to bring the motors to a full stop, then accelerate again when motion resumes.

Everything in gcode logic is sequential, AFAIK, there are no truly parallel threads running at once, except for interpolated axis motions.

I don't know what else you could do except rig up some micro switches or proximity sensors to place along the path of the dispenser, which would trigger the dispenser directly, and seperately, from the gcode.

Or, maybe add a solenoid driven drip catcher to slide beneath the dispenser when it shuts off to catch the drip?
__________________
First you get good, then you get fast. Then grouchiness sets in.

(Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)
Reply With Quote

Sponsored Links
  #6   Ban this user!
Old 12-29-2005, 02:07 PM
 
Join Date: Dec 2004
Location: USA
Posts: 12
GeorgeRudd is on a distinguished road

There must me a way to turn a device on and off without introducing a delay in the x/y move. I have seen laser cutters draw complex dotted lines without pauses between the on and off points. Any idea how a laser could do this?

What we are really trying to do is figure out a way to turn off the dispenser just before it reaches the end of a line or when it hits a corner and changes cutting direction. We were attempting to do this by breaking he line so we could insert the "dispenser OFF" command...which did not solve our build-up problem.
Reply With Quote

  #7   Ban this user!
Old 12-29-2005, 02:11 PM
Chris D's Avatar  
Join Date: Apr 2005
Location: USA
Posts: 390
Chris D is on a distinguished road

Originally Posted by GeorgeRudd
What I am trying to do should be very simple. I am trying to draw a straight line and while the line is being drawn I am trying to send m-code commands that turn a pump/dispenser on and off. Is this possible?

I tried to insert the m-code command in between two lines of X/Y commands but it caused a slight delay and subsequently, an unwanted buildup of fluid where the gantry paused momentarily.

Here are a few lines of code from the tests that I have done. This test caused a delay when turning the pump off.

> N21 M1[Dispenser On]
> N22 G1 X21.0802 F200.0
> N23 M2[Dispenser Off]
> N24 G1 X40.0802 F200.0

Depending on your controller, the M-code could be executed first or last on a line.

Try this

N21 M1[Dispenser On]
N22 G1 X21.0802 F200.0 M2
N24 G1 X40.0802 F200.0

And if that doesn't time out right then try this

N21 M1[Dispenser On]
N22 G1 X21.0802 F200.0
N24 G1 X40.0802 F200.0 M2

Usually the position of an M-code within a line doesn't matter as to when it gets executed. Most likely, the second version is the one that will work for you.

Chris
Reply With Quote

  #8   Ban this user!
Old 12-29-2005, 02:29 PM
 
Join Date: Dec 2004
Location: USA
Posts: 12
GeorgeRudd is on a distinguished road

Chris, putting the m-code command on the end of the line that contains the X move was the first thing that I tried. When I ran the file I got an error that said there were two commands on the same line.

I did a test that changed the speed in the middle of a path and it worked fine with no delay, which made me think that the m-code should work. Unfortunately the manufacturer of our machine is closed until January 3rd so I can not ask them any technical questions until then.

N22 G1 X21.0802 F200.0
N24 G1 X40.0802 F400.0
Reply With Quote

Reply




Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On





All times are GMT -5. The time now is 12:48 AM.





Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Content Relevant URLs by vBSEO
Template-Modifications by TMS

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361