Pin settings – Badger Meter 4050 Flow Computers User Manual

Page 13

Advertising
background image

4050 Multi-Input Linear Flow Computer

11

PIN SETTINGS.

RS232

RS485

9 way D,

Pin 2

RX

B

Pin

3

TX

A

Pin5

0v

0v

Code Examples:


Cal_dec(returned decimal value, asciihex string from input buffer 8 bytes, number of decimal places, returned ascii
string)
cal_dec(a, Left$(rx_buff, 8), 3, b)

Label27.Caption = b


Sub cal_dec(dec, result, dp_pos, result_str)
dec = 0
eb = Left$(result, 2)
If eb = "00" Then GoTo the_res_is_zero
sethex = Right$(result, 6)
e = Val("&h" + eb) - 127
bin_data = ""


For p = 1 To 6
Select Case UCase(Mid$(sethex, p, 1))
Case "0" nibble = "0000"
Case "1" nibble = "0001"
Case "2" nibble = "0010"
Case "3" nibble = "0011"
Case "4" nibble = "0100"
Case "5" nibble = "0101"
Case "6" nibble = "0110"
Case "7" nibble = "0111"
Case "8" nibble = "1000"
Case "9" nibble = "1001"
Case "A" nibble = "1010"
Case "B" nibble = "1011"
Case "C" nibble = "1100"
Case "D" nibble = "1101"
Case "E" nibble = "1110"
Case "F" nibble = "1111"
End Select
bin_data = bin_data + nibble
Next p
If Left$(bin_data, 1) = "1" Then
sign = "-"
Else
sign = ""
End If
dec = 1
For p = 2 To Len(bin_data)
Bit = Mid$(bin_data, p, 1)
If Bit = "1" Then dec = dec + 2 ^ -(p - 1)
Next
dec = (2 ^ e) * dec
wiv_sign = sign + Str(dec)
dec = Val(wiv_sign)
the_res_is_zero:
Select Case Val(dp_pos)
Case 1
result_str = Format(dec, "0.0")
Case 2
result_str = Format(dec, "0.00")
Case 3
result_str = Format(dec, "0.000")
Case 4
result_str = Format(dec, "0.0000")
Case 5
result_str = Format(dec, "0.00000")
Case 6
result_str = Format(dec, "0.000000")
Case 7
result_str = Format(dec, "0.0000000")
Case 8
result_str = Format(dec, "0.00000000")
Case 9
result_str = Format(dec, "0.000000000")
Case Else
result_str = Format(dec, "0")
End Select

End Sub

Advertising