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! > Machine Controllers Software and Solutions > Mach Software (ArtSoft software) > Mach Mill



This forum is sponsored by:

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Ban this user!
Old 11-23-2006, 09:43 PM
 
Join Date: Oct 2005
Location: USA
Posts: 67
mecheng10 is on a distinguished road
Modbus to run GS-2 drive?

I see that Mach 3 has Modbus capabilities. Does anyone know how difficult it would be to interface a PC running Mach 3 with an Automation Direct GS-2 drive using the modbus protocol over RS-232 or 485? I was originally looking to use another CNC controller program (CNC Zeus) mainly because it was capable of directly controlling my spindle without additional hardware, but I have not been thrilled with the performance, and Mach 3 looks like it might work well, provided I can control my spindle with it.
Reply With Quote

  #2  
Old 11-23-2006, 10:03 PM
ger21's Avatar
Community Moderator
 
Join Date: Mar 2003
Location: Shelby Twp, MI....USA
Posts: 20,456
ger21 is on a distinguished road
Buy me a Beer?

Hopefully Peter will see this and have an answer for you. He makes the ModIO board. http://www.homanndesigns.com/ModIO.html

If you look at the ModIO user manual, it has some info on setting up Modbus devices that might help you out.
__________________
Gerry

Mach3 2010 Screenset
http://home.comcast.net/~cncwoodworker/2010.html

(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 11-26-2006, 06:34 PM
phomann's Avatar  
Join Date: Aug 2005
Location: Australia
Posts: 450
phomann is on a distinguished road

Yes, Mach3 can control MOdbus devices including the ModIO http://www.homanndesigns.com/ModIO.html

Mach will drive the GS-2 directly although I haven't done it. I use the DigiSpeed http://www.homanndesigns.com/DigiSpeedDeal.htmlto drive my motor controller.

Cheers,

Peter.


Originally Posted by mecheng10 View Post
I see that Mach 3 has Modbus capabilities. Does anyone know how difficult it would be to interface a PC running Mach 3 with an Automation Direct GS-2 drive using the modbus protocol over RS-232 or 485? I was originally looking to use another CNC controller program (CNC Zeus) mainly because it was capable of directly controlling my spindle without additional hardware, but I have not been thrilled with the performance, and Mach 3 looks like it might work well, provided I can control my spindle with it.
__________________
-------------------------------------------------
Homann Designs - http://www.homanndesigns.com
Reply With Quote

  #4   Ban this user!
Old 01-06-2007, 12:25 PM
 
Join Date: Oct 2005
Location: USA
Posts: 67
mecheng10 is on a distinguished road
How to implement modbus for VFD

Another question here: Suppose I want to communicate directly between my host pc running Mach 3 and my VFD (Automation Direct GS-2) using Modbus. How do I go about doing it? I have looked at the Modbus control setup in Mach 3 and I don't understand how to set it up for direct communication with such a device. An example of what I would like to do it is as follows:

-Use Mach 3 to communicate directly with a GS-2 drive using the a serial port on the host pc and the RJ-12 port on the drive as well as a custom cable
-Communicate using RS-232C or RS 485 (preferred if possible due to EMI immunity)
-Whenever Mach 3 encounters a M03 command in a running program
---write 0001 hex to address 091B hex on GS-2 drive
---write 0000 hex to address 091C hex on GS-2 drive
---read 091B and 091B hex from GS-2 drive
---if values not correct, resend
-Whenever Mach 3 encounters a M04 command in a running program
---write 0001 hex to address 091B hex on GS-2 drive
---write 0001 hex to address 091C hex on GS-2 drive
---read 091B and 091B hex from GS-2 drive
---if values not correct, resend
-Whenever Mach 3 encounters a M05 command in a running program
---write 0000 hex to address 091B hex on GS-2 drive
---read 091B hex from GS-2 drive
---if value not correct, resend
-Whenever Mach 3 encounters a S____ command in a running program
---convert S command to desired drive output frequency
---write ____ to address 091A hex on GS-2 drive
---read 091A hex from GS-2 drive
---if value not correct, resend

I would like to extend this general concept to include reading and resetting drive errors from Mach 3 as well as triggering external faults on the drive in the event of an e-stop etc.

My real question hear is: Does MAch 3 have the capabilities to due this type of thing? Would I have to write my own code to do this?

Thanks,
-Brian
Reply With Quote

  #5   Ban this user!
Old 01-09-2007, 06:58 PM
 
Join Date: Oct 2004
Location: US
Posts: 118
Barker806 is on a distinguished road

You would have to setup the registers in decimal and enable bitpacking... Should be no probelm and if you start on that project please feel free to mail me and i will help you with the settings

Thanks
Brian
Reply With Quote

Sponsored Links
  #6   Ban this user!
Old 01-09-2007, 10:08 PM
 
Join Date: Oct 2005
Location: USA
Posts: 67
mecheng10 is on a distinguished road
programming modbus spindle control

I am just becoming familiar with how Mach works. Here is what I have determined so far. Please correct me if I'm wrong.

-Control of the spindle through Modbus can be accomplished by writing VB script that can be activated by a button that could be added to the user interface using a screen designer or that could be caled from within the G-code. Is there a way to automatically activate such a script when starting Mach?

-Communication with the spindle device can be accomplished through modbus by using the built in direct or polled modbus communication functions such as FillFromInput and GetInput within the script.

Am I on the right track here?

-Brian
Reply With Quote

  #7   Ban this user!
Old 01-11-2007, 12:29 PM
 
Join Date: Oct 2004
Location: US
Posts: 118
Barker806 is on a distinguished road

You are close but here is no VB that needs to be done and there is no need to work on the screen All you have to do is setup the bitpacking and set the register that you need to send the word for the velocity. I have the manual for the drive here and I have one inthe mill in the shop... just need time to get out there and get it working
Reply With Quote

  #8   Ban this user!
Old 01-11-2007, 08:03 PM
 
Join Date: Oct 2005
Location: USA
Posts: 67
mecheng10 is on a distinguished road
Modbus settings

Barker,

Not having to write any code sounds great! I'm a little rusty. Not sure I understand how the S word get translated into the correct frequency command, and send over Modbus without code though. To me it looks like the standard version of Mach only supports spindle speed control using step and direction signals, and PWM. Under config/ports and pins, I see Modbus spindle. Is that the right thing to use. It appears that is supposed to work with 3rd party breakout boards. Would you be willing to post the needed setting? I think I understand the GS-2 side of things ok, but not the Mach 3 side of things very well.


Many thanks,
-Brian
Reply With Quote

  #9   Ban this user!
Old 01-11-2007, 08:19 PM
 
Join Date: Oct 2004
Location: US
Posts: 118
Barker806 is on a distinguished road

Yup, no problem tell me the register in Decimal and what bit you need changed. the settings on the mach3 side will only take me a few min
Reply With Quote

  #10   Ban this user!
Old 01-11-2007, 09:44 PM
 
Join Date: Oct 2005
Location: USA
Posts: 67
mecheng10 is on a distinguished road
Decimal Addresses

If my hex to decimal conversion is correct, this should be what I need to do:

-Whenever Mach 3 encounters a M03 command in a running program
---write 1 to address 2331 on GS-2 drive
---write 0 to address 2332 on GS-2 drive
---read 2331 and 2332 from GS-2 drive
---if values not correct, resend
-Whenever Mach 3 encounters a M04 command in a running program
---write 1 to address 2331 on GS-2 drive
---write 1 to address 2332 on GS-2 drive
---read 2331 and 2332 from GS-2 drive
---if values not correct, resend
-Whenever Mach 3 encounters a M05 command in a running program
---write 0 to address 2331 on GS-2 drive
---read 2331 from GS-2 drive
---if value not correct, resend
-Whenever Mach 3 encounters a S____ command in a running program
---convert S command to desired drive output frequency
---write ____ to address 2330 on GS-2 drive
---read 2330 hex from GS-2 drive
---if value not correct, resend


-Brian
Reply With Quote

Sponsored Links
  #11   Ban this user!
Old 01-13-2007, 09:06 AM
 
Join Date: Oct 2004
Location: US
Posts: 118
Barker806 is on a distinguished road

Here are the Macro's that you will need to change:

M3

Call Setmodoutput(1,1) 'Turn on the spindle
Call Setmodoutput(2,0) 'This tells the spindle to turn CW
DoSpinCW()


M4

Call Setmodoutput(1,1) 'Turn on the spindle
Call Setmodoutput(2,1) 'This tells the spindle to turn CCW
DoSpinCCW()

M5

Call Setmodoutput(1,0) 'Turn on the spindle
Call Setmodoutput(2,0) 'This tells the spindle to turn CW
DoSpinStop()

And you can see the settings in the pic...

Hope that helps
Brian
Attached Thumbnails
Click image for larger version

Name:	Gs2 settings.jpg‎
Views:	277
Size:	77.6 KB
ID:	29374  
Reply With Quote

  #12   Ban this user!
Old 01-13-2007, 01:18 PM
 
Join Date: Oct 2005
Location: USA
Posts: 67
mecheng10 is on a distinguished road
Macro code

Barker,

This seems much simpler than I originaly thought. I do have a couple of issues though. Please see my comments below.


M3

Call Setmodoutput(1,1) 'Turn on the spindle
Call Setmodoutput(2,0) 'This tells the spindle to turn CW
DoSpinCW()


M4

Call Setmodoutput(1,1) 'Turn on the spindle
Call Setmodoutput(2,1) 'This tells the spindle to turn CCW
DoSpinCCW()

M5

Call Setmodoutput(1,0) 'Turn on the spindle
Call Setmodoutput(2,0) 'This tells the spindle to turn CW
DoSpinStop()

It appears that buffIndex starts counting with 0, so shouldn't the 1s be 0s and the 2s be 1s?

Also, to set the spindle speed given the settings you gave, could I modify the spindlespeed macro to something like this:

spindlespeed

rpm = GetRPM()
SetSpinSpeed( rpm )
ratio = ??? 'Determines ratio of motor output frequency to spindle speed
freq = rpm/ratio 'Calculates desired output frequency given ratio
Call Setmodoutput(64,freq) 'Set drive output frequncy to desired value


-Brian
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 Off
Trackbacks are On
Pingbacks are On
Refbacks are On





All times are GMT -5. The time now is 12:31 PM.





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