A little OT

GregPLC

Member
Join Date
Oct 2002
Location
Milwaukee, WI
Posts
342
Hey everyone! Quick question about counts: We have an Ohaus Explorer Pro scale that has a range of 0-8100 grams, with readability of 0.1grams. So this would mean the load cell has a total of 81,000 used counts? An OEM machine we have utilizes one of these scales, and the scale communicates to the PC via RS-232. The PC is a 386, which has a 16-bit bus, correct? The program which receives data from the scale and then makes calculations based on those readings uses the "tenths" decimal place. How can the 81,000 counts be used without some rounding at 16 bit or even 32 bit in the computer architecture? Am I missing something?

TIA,

Greg
 
GregPLC,

There are two common methods:
(1) The load cell output is scaled from 0-8100.0 g) up to a 16-bit number (0-32567) that can be re-scaled once it is in the PC memory. The weight does get rounded, but the fraction is still accounted for, just not 1/10 g accuracy. For example, Output to PC = (32567-0)/(8100-0) X Weight. If the weight = 4100.6, then output to PC = 4.0206172 X 4100.6 = 16487 (nearest whole number between 0 and 32567). Inside the PC, then the conversion in the other direction would be 16487/4.0206172 = 4100.61. You can see in this case that an error of 0.01 has been introduced by the scaling and rounding. Larger errors are possible.


(2) Two or more 16 bit numbers are sent, usually first 16-bits represents the "whole" number,and the second 16 bits represents the fractional part. Once into the PC, the number is re-constructed. This method would be more accurate, but takes more programming to reconstruct the number.

Only you can say which method is being used, by opening up the program and studying it.
 
Last edited:
Sorry, in my reply above, substitute "32767" for "32567". My stupid mistake! Now Slope = 32767/8100 = 4.0453 and 4.0453 X 4100.6 = 16588, and so on.
 
Does it transmit using ascii or an integer?

If you are using a 386, you should have no problem using either 16 or 32 bit integer, or 32, 64 or 80 bit floating point. It all depends how the scale sends the number. If ascii, such as many do, you will often get a few start characters, your weight, then a few end characters. Using string functions, you strip out the number, convert it to whatever format you want, then use that in your calculations. Your OS should handle all the probelms of transmitting a 32 (or 80) bit number over a 16 bit bus.

(BTW, 386SX = 16 bit bus, no co-processor, 386DX = 32 bit bus and built in maths co-processor, perhapse it is time to upgrade).
 
Thanks for the info guys, I'm lacking in knowledge when it comes to computer architecture...makes sense. I'm not sure if the scale transmits in ASCII or whole numbers....I'll have to find out.



Greg
 

Similar Topics

Hi, Need a little bit guiding using SISTEMA software. As I understand a subsystem consist of components and are the same category. I'm confused...
Replies
11
Views
2,539
Good morning everyone, I've got 2 servo driven axes that each use a Heidenhain glass slide to the motion controller for position and velocity...
Replies
4
Views
1,387
RSLogix 500, what is the little image next to the ladder in the project tree? it looks like a little blue bug with a red dot on its back. just...
Replies
5
Views
2,015
Hi everyone, trying to get data out of a digital encoder that is little endian into my Siemens S7-1200 controller that is big endian...it's an...
Replies
7
Views
3,265
Hello all. I was starting to get into a new project (that will probably never see the light of day because $$$) at the plant I work in and...
Replies
26
Views
5,482
Back
Top Bottom