品牌:GE | 規格:全新 | 材質:原裝 |
產地:國外 |
IC693MDL340E
[開始]按鈕的Click事件處理程序主要是對MSComm1控制的參數初始化設置,程序中大部分參數在設計時可在MSComm1控制的屬性窗口中設置:
Private Sub Command1_Click() '開始按鈕
With MSComm1
mPort=2 '使用COM2
.Setting="9600,N,8,1" '設置通信口參數
.InBufferSize=40 '設置MSComm1接收緩衝區為40字節
.OutBufferSize=2 '設置MSComm1發送緩衝區為2字節
.InputMode = comInputModeBinary '設置接收數據模式為二進制形式
.InputLen = 1 '設置Input 一次從接收緩衝讀取字節數為1
.SThreshold = 1 '設置Output 一次從發送緩衝讀取字節數為1
.InBufferCount = 0 '清除接收緩衝區
.OutBufferCount = 0 '清除發送緩衝區
For i=1 to 8
Wmax(i) = -99 '大值賦初值
Wmin(i) = 99 '小值賦初值
Next i
w = 0 '數據個數計數器清零
.RThreshold = 1 '設置接收一個字節產生OnComm事件
On Error Resume Next '改變錯誤處理的方式。
Err.Clear
If .PortOpen = False Then '判斷通信口是否打開
.PortOpen = True '打開通信口
If Err Then '錯誤處理
MsgBox "串口通信無效"
Exit Sub
End If
End If
End With
End Sub
為了達到實時數據採集目的,實時數據採集處理程序採用MSComm事件驅動方式。MSComm1_OnComm 的事件處理程序只處理comEvReceive事件,首先判斷幀數據的開始字節,關閉OnComm接收事件,然後接收數據字節,將壓縮BCD進行還原轉換,再接收符號字節,判斷數據符號,判斷數據大小值,後打開OnComm接收事件,等待下一次OnComm事件產生:
Private Sub MSComm1_OnComm()
With MSComm1
Select Case mEvent '判斷MSComm1通訊事件
Case comEvReceive '收到Rthreshold個字節產生的接收事件
av = .Input '讀取一個接收字節
ab(1) = av(0) '轉換保存到字節數據類型數組
If ab(1) = 170 Then '判斷是否為數據開始標志,0FAH=170
.RThreshold = 0 '關閉OnComm事件接收
W=W+1 '計數器加1
av = .Input '讀取通道狀態字節
ab(0) = av(0) '轉換保存到字節數據類型數
For i = 1 To 8 '通道狀態數組復位
TD(i) = False
Next i
cn = 2 '幀長度賦初值,一個開始字,一個狀態字
If ab(0) >= 128 Then '判斷第八通狀態
TD(8) = True '第八道是真
ab(0) = ab(0) - 128 '第7位置零
cn = cn + 3 '幀長度加3個字節
End If
If ab(0) >= 64 Then '判斷第七通狀態
TD(7) = True '第七道是真
ab(0) = ab(0) - 64 '第6位置零
cn = cn + 3 '幀長度加3個字節
End If
If ab(0) >= 32 Then '判斷第六通狀態
TD(6) = True '第六道是真
ab(0) = ab(0) - 32 '第5位置零
cn = cn + 3 '幀長度加3個字節
End If
If ab(0) >= 16 Then '判斷第五通狀態
TD(5) = True '第五道是真
ab(0) = ab(0) - 16 '第4位置零
cn = cn + 3 '幀長度加3個字節
End If
If ab(0) >= 8 Then '判斷第四通狀態
TD(4) = True '第四道是真
ab(0) = ab(0) - 8 '第3位置零
cn = cn + 3 '幀長度加3個字節
End If
If ab(0) >= 4 Then '判斷第三通狀態
TD(3) = True '第三道是真
ab(0) = ab(0) - 4 '第2位置零
cn = cn + 3 '幀長度加3個字節
End If
If ab(0) >= 2 Then '判斷第二通狀態
TD(2) = True '第二道是真
ab(0) = ab(0) - 2 '第0位置零
cn = cn + 3 '幀長度加3個字節
End If
If ab(0) >= 1 Then '判斷第一通狀態
TD(1) = True '第一道是真
cn = cn + 3 '幀長度加3個字節
End If
For i = 1 To 8 '
If TD(i) = True Then
av = .Input '讀取第一個數據字節(BCD碼高位字節)
ab(2) = av(0) '轉換保存到字節數據類型數組
av = .Input '讀取第二個數據字節(BCD碼低位字節)
ROSEMOUNT TRANSMITTER 1151DP4S12S2B1 REMOTE FLG 686IN07
ROSEMOUNT 3051CA1A22A1AS1E5 W/ 1199WNB05SSCW50LA000
ROSEMOUNT DIETERICH STANDARD PNT10S007HADS0S00003A1A
ROSEMOUNT PRESSURE TRANSMITTER 3051-CG3A22A1AS0E5M5QP
ROSEMOUNT PRESSURE TRANSMITTER 3051-CG3A22A1AS05M5E5QP
ROSEMOUNT 1151DP3E12
NEW ROSEMOUNT 3051 DIFFERENTIAL PRESSURE TRANSMITTER
NEW ROSEMOUNT 3051 GAGE PRESSURE TRANSMITTER
USED FOXBORO/ROSEMOUNT TRANSMITTER 823DP-D3S1NM2-M
NEW ROSEMOUNT 444RL1U1D2E5 TEMPERATURE TRANSMITTER
Rosemount 3051 Protection Terminal Block Kit 14Pcs
Rosemount 248 Temp Transmitter C/W 68 Sensor&Thermowell
ROSEMOUNT 3051 GAUGE PRESSURE TRANSMITTER 601IN4
Rosemount 1151 Smart Pressure Transmitter, 0-200#
NEW ROSEMOUNT 3051 PRESSURE TRANSMITTER 0 - 1000 IN H20
ROSEMOUNT 1151DP4E2292B4 PRESSURE TRANSMITTER
NEW Rosemount 03031-3023-0042 0303130230042
ROSEMOUNT 44RL3U1A2E5 NNB
ROSEMOUNT 8712H SMART FAMILY MAG. FLOWMETER TRANSMITTE
Rosemount 0183P13J2N00N045E5 Sensor 0183*6632742 New
Rosemount 0183P13J2N00N040E5 Sensor 0183*6740184 New
ROSEMOUNT MAGNETIC FLOWTUBE
ROSEMOUNT PRESSURE TRANSMITTER 3051
ROSEMOUNT 1151 PRESSURE TRANSMITTER 1151GP6E22M1B1 ALPH
NEW ROSEMOUNT TEMPERATURE TRANSMITTER 444TK3U1A2E5 ALPH
Rosemount Temperature Transmitter 444TK1U1B2NA
NEW ROSEMOUNT 1151DP3E22 PRESSURE TRANSMITTER
Rosemount Smart Family 8700 Magnetic Flow Transmitter
NEW Rosemount Temperature Probe Model 79 Conection Head
Rosemount 444RL1U1A1E5 Temperature Transmitter New
NEW ROSEMOUNT 2024D2A22A0I1B4 TRANSMITTER
NEW ROSEMOUNT 2024 D2A22A2I1B4 TRANSMITTER
ROSEMOUNT TANK SPUD 01199-0061-0001 *NEW*
New Rosemount Model 79 Field Connection Heads Pair NR
ROSEMOUNT TEMPERATURE PROBES
ROSEMOUNT Temp.Sensor CAMCO 1/2"T-304 79-325-2; *B8
Rosemount 644 Intrinsically Safe Temperature Transmitte