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 > Visual Basic


Visual Basic Discuss Visual Basic programing.


Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Ban this user!
Old 07-07-2008, 12:31 PM
 
Join Date: Feb 2008
Location: The Edge of Obscurity
Posts: 210
ProProcess is on a distinguished road
Mitutoyo gage to RS232 with VB.Net

Anybody ever convert the output from Mitutoyo gages through RS232?
I just started looking into it and it seems Mitutoyo does not use a standard RS232 protocol. They need a converter of some type. Anybody familiar with this?
Thanks in advance as any help would be appreciated.
Tweet this Post!Share on Facebook
Reply With Quote

  #2   Ban this user!
Old 07-07-2008, 03:46 PM
 
Join Date: Aug 2005
Location: U.S.A
Posts: 52
Megahertz is on a distinguished road

This interface was engineered in Issue #41 of the Circuit Cellar Ink periodical. Jeff Bachiochi was the engineer working on the design. I believe it is a synchronous interface that is about 30 bits long.
Tweet this Post!Share on Facebook
Reply With Quote

  #3   Ban this user!
Old 07-07-2008, 05:47 PM
 
Join Date: Jul 2008
Location: UK
Age: 53
Posts: 411
irving2008 is on a distinguished road

There is some useful info on the protocol here

hope this helps...
Tweet this Post!Share on Facebook
Reply With Quote

  #4   Ban this user!
Old 07-07-2008, 10:42 PM
 
Join Date: Aug 2005
Location: USA
Posts: 1,622
One of Many is on a distinguished road

Originally Posted by ProProcess View Post
Anybody ever convert the output from Mitutoyo gages through RS232?
I just started looking into it and it seems Mitutoyo does not use a standard RS232 protocol. They need a converter of some type. Anybody familiar with this?
Thanks in advance as any help would be appreciated.
A couple years ago, I created a braille display using an 18 wheel calculator printer that connects to a pair of Mitutoyo calipers with the data output connector. I used the Parallax SX48 chip and programmed in SX assembly language. There is 52 bits in 13 nibbles and the data is output backwards.

There was an interface that Mititoyo had sold that converted the digimatic code to RS232 for SPC data collection software. I found a few on Ebay a few years back.

Here are a couple links that may help you.

Flexipanel interface

Tech Musings

Link to digimatic protocol above

You might place a call to a corporate Mititoyo office and see if an applications engineer will email you a PDF document STD-005 technical information "Design Specifications of Digimatic Data output Interface" Lots of good info on pin outs, request signals and data timing. Several cable configurations to boot. 29pgs in all.

Most, if not all data collection/conversion I have seen done external of a PC due to the speed required of the processor to fetch and store the data stream after the gages request line is pulled low.

DC
__________________
Learn cause and effect through experience. Mastering those relationships is the "Common Sense" ability within the art of any trade.
Tweet this Post!Share on Facebook
Reply With Quote

  #5   Ban this user!
Old 07-08-2008, 06:59 PM
 
Join Date: Feb 2008
Location: The Edge of Obscurity
Posts: 210
ProProcess is on a distinguished road

Thanks to All for the help, links and suggetions, i really do appreciate it.

On of Many, I Love your signature. It rings very True for most of life!
Tweet this Post!Share on Facebook
Reply With Quote

Sponsored Links
  #6   Ban this user!
Old 07-08-2008, 08:07 PM
 
Join Date: Aug 2005
Location: USA
Posts: 1,622
One of Many is on a distinguished road

Sorry I cannot help with VB. I've got a book, but never enough time or immediate ambition/need/motivation to work with it. For this application, the serial bus will be the bottle neck. Your best bet may be to look for a ready made converter then use VB to crunch the ascii data string as it comes in already converted. As I recall the Mitutoyo box was a DP1, but you may find several aftermarket digimatic to RS232 systems in a web search.

Good Luck.

DC
__________________
Learn cause and effect through experience. Mastering those relationships is the "Common Sense" ability within the art of any trade.
Tweet this Post!Share on Facebook
Reply With Quote

  #7   Ban this user!
Old 07-09-2008, 02:36 PM
 
Join Date: Jul 2008
Location: UK
Age: 53
Posts: 411
irving2008 is on a distinguished road

Assuming that you are looking at their 'standard' scales the raw bit data rate at say 40ipm will be something in excess of 100kbps. Converted to ASCII thats 6 digits of data at a sample rate of >3000 samples/sec or about 18000 char/sec or ~180kbps in RS232 terms. An external RS232 converter at 230kbps would be able to transfer the data but not many applications will be able to handle it and you'd never get that throughput from VB anyway (well not reliably).
If you were to convert to RS232 externally you'd need to consider a solution that threw away intermediate samples and had a fixed external, programmable data rate. This would be easily accomplished with a PIC or other single-chip microprocessor. Personally I'd go for a solution that used a USB interface to emulate a COM port, based around one of the FTDI USB chips interfaced to a PIC processor.

However a lot depends on what you plan to do with the data. If its just displaying it then you can afford to 'lose' data and a VB solution that captures the next available 'packet' by reading on demand against a timer interval would be fine. If you are looking for any sort of feedback control then the USB solution might be the only way to get the data in fast enough to be useful.
Tweet this Post!Share on Facebook
Reply With Quote

  #8   Ban this user!
Old 07-09-2008, 03:15 PM
 
Join Date: Feb 2008
Location: The Edge of Obscurity
Posts: 210
ProProcess is on a distinguished road

irving2008,

Thanks for the information!

My application would is very simple, and would not require any "real-time" sampling or feed back. I have a few Mit gages around the shop and want to interface them to some simple measuring software that we have developed. This would eliminate the "laborious" ... and some times error prone ... task of having a human enter the gage data manually into a Textbox.
Tweet this Post!Share on Facebook
Reply With Quote

  #9  
Old 07-09-2008, 05:21 PM
Switcher's Avatar
Moderator
 
Join Date: Apr 2005
Location: Vectorink.com
Posts: 3,659
Blog Entries: 2
Switcher is on a distinguished road

Maybe this will help?

It's VB.NET 2003


http://www.microsoft.com/downloads/d...displaylang=en

.
__________________
Free DXF Files - Vectorink.com - myDXF.blogspot.com
Tweet this Post!Share on Facebook
Reply With Quote

  #10   Ban this user!
Old 07-09-2008, 07:10 PM
 
Join Date: Jul 2008
Location: UK
Age: 53
Posts: 411
irving2008 is on a distinguished road

Originally Posted by ProProcess View Post
irving2008,

Thanks for the information!

My application would is very simple, and would not require any "real-time" sampling or feed back. I have a few Mit gages around the shop and want to interface them to some simple measuring software that we have developed. This would eliminate the "laborious" ... and some times error prone ... task of having a human enter the gage data manually into a Textbox.
In that case you might get away with connecting the scale to a parallel port pin and reading it directly in VB on user command since you only need the one reading. You can afford to lock the thread and devote the whole CPU to the reading function for the time it takes to read the next incoming sample...

If I had a scale I'd knock something up for you...
Tweet this Post!Share on Facebook
Reply With Quote

Sponsored Links
  #11   Ban this user!
Old 07-09-2008, 07:15 PM
 
Join Date: Jul 2008
Location: UK
Age: 53
Posts: 411
irving2008 is on a distinguished road

Originally Posted by Switcher View Post
Maybe this will help?

It's VB.NET 2003


http://www.microsoft.com/downloads/d...displaylang=en

.
That would help if the data was already available in RS232 format.... but thats the easy bit (apart from its for VS2003 which is no longer supported, but porting to VS2008 isnt too hard)
Tweet this Post!Share on Facebook
Reply With Quote

  #12   Ban this user!
Old 07-10-2008, 03:33 PM
 
Join Date: Aug 2005
Location: USA
Posts: 1,622
One of Many is on a distinguished road

Originally Posted by irving2008 View Post
In that case you might get away with connecting the scale to a parallel port pin and reading it directly in VB on user command since you only need the one reading. You can afford to lock the thread and devote the whole CPU to the reading function for the time it takes to read the next incoming sample...

If I had a scale I'd knock something up for you...
Irving,

What Proprocess is trying to do is grab digimatic code from a Mitutoyo gage, like calipers, mic's and indicators that have a data output port on the gage itself. This is a formatted code that comes out in a odd packet. This is not a scale encoder. The gage data is output in a 52bit string once the data request line is triggered. When the sequence starts, the CPU needs to be ready to take that stream of bits into a shift register 1 at a time and store it into a data string for restructuring into a usable ascii format for RS-232 output string. I made a typo there previously, as it should be 52bits in 13 bytes or more precisely 26 BCD nibbles.

The crux of the byte structure is in this screen shot.

It would be slick if this could be done direct through a few parallel port pins. I used a Data line, Clock line, Ready line, Request line to link the SX48 to the gage.

Here is an SX snippet of code I used to extract the data from the gage.


;*****THIS SECTION TAKES IN THE DATA STRING FROM THE DIGIMATIC GAGE

ANTI_TIE_DOWN
BANK $10 ;DOUBLE STROKE PREVENTION
JNB P_BUTTON,ANTI_TIE_DOWN
MOV MDELAY, #240
MOV MDELAY+1,#10
DEBOUNCE_SW

decsz MDELAY ; SETUP FOR DELAY OF MECHANICAL CONTACTS
JMP DEBOUNCE_SW ;DEBOUNCE TIME.
mov MDELAY, #240 ;
decsz MDELAY+1
jmp DEBOUNCE_SW


AWAIT_PB
BANK $10

;EXPECT 52 COUNTS FOR 52 BIT STRING
SNB P_BUTTON ;LOOK FOR FALLING REQ EDGE ON P_BUTTON
JMP AWAIT_PB

BANK $10


MOV FSR, #$07
CLEANUP
CLR IND
INCSZ FSR
JMP CLEANUP


clr $10
clr $11
clr $12
clr $13
clr $14
clr $15
clr $16
clr $17
clr $18
clr $19
clr $1a
clr $1b
clr $1c
clr $1d
clr $1e
clr $1f

BANK $10
MOV MDELAY,#$FF
MOV T3,#52
CLRb GAGE_REQ ;TELL GAGE TO SEND
CLKfe
SNB CLK_IN
jmp CLKfe ;LOOK FOR FALLING CLK EDGE OF RB.1
CALL SHIFTIN ;GO SHIFT THIS BIT INTO DATSTR
CJE T3,#0,SPLIT_DAT_STR
CLKre
SB CLK_IN
JMP CLKre ;LOOK FOR RISING CLK EDGE OF RB.1
JMP CLKfe

SHIFTIN
SETB GAGE_REQ ;RESET GAGE REQUEST
;CAPTURE DATA STRING ON DATA_IN AS IT COMES IN.
CLRB C ;CLEAR THE CARRY FLAG
SNB DATA_IN ;SKIP IF THE INCOMING BIT IS NOT HIGH
SETB C ;SET THE CARRY FLAG IF DATA BIT IS HIGH
RR (DATSTR + $00) ;ROTATE MIC BUFFER STRING HIGH/LOW BIT TO THE RIGHT
RR (DATSTR + $01) ;THIS TAKES THE CARRY BIT INTO THE STRING.
RR (DATSTR + $02) ;REGARDLESS OF ITS LEVEL.
RR (DATSTR + $03) ;EACH RR PUTS A BIT INTO THE CARRY FLAG
RR (DATSTR + $04) ;TO BE CONSUMED BY THE NEXT ROTATE RIGHT INSTRUCTION!
RR (DATSTR + $05) ;BASICALLY A SHIFTIN ROUTINE.
RR (DATSTR + $06)
DEC T3 ;COUNT DOWN T3 EACH BIT, SKIP IF T3 IS AT 0


DC

Attached Thumbnails
Click image for larger version

Name:	DigimaticCode.JPG‎
Views:	2662
Size:	63.6 KB
ID:	62875  
__________________
Learn cause and effect through experience. Mastering those relationships is the "Common Sense" ability within the art of any trade.

Last edited by One of Many; 07-10-2008 at 04:20 PM.
Tweet this Post!Share on Facebook
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


Similar Threads
Thread Thread Starter Forum Replies Last Post
1-2-3 gage blocks? purpose? pmurdock General Metalwork Discussion 22 02-15-2008 03:00 AM
Faro Gage TURNING MAD Calibration & Measurement 2 05-04-2007 05:49 PM
Faro Gage TURNING MAD General Metal Working Machines 0 12-18-2006 12:25 PM
What gage wire? WilliamD General Electronics Discussion 12 02-13-2006 06:40 PM
#16 wire gage trubleshtr General Electronics Discussion 2 04-02-2005 08:09 PM




All times are GMT -5. The time now is 02:02 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