主程序:
Option Explicit Const NAME_COLUMN = 0 Const TYPE_COLUMN = 1 Const SIZE_COLUMN = 2 Const DATE_COLUMN = 3 Dim pre As Integer 读取参数-读取压力参数-标定 Dim tmp As Integer 温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度-温度参数读-温度参-温度-温度参数读-温度-温度-温度-温度参数读-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度参数读-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度 Private Sub Command_BUTTON_ALARM_Click() Dim count As Integer Dim send(9) As Byte 定义发送数组 Dim crc(1) As Byte Dim item(1) As Byte Dim address As Integer Dim stemp(3) As Byte Call WaitForScan send(0) = &HFF send(1) = &H10 Call ITB(ALARM, item()) send(2) = item(1) 寄存器地址 send(3) = item(0) send(4) = &H0 寄存器数量 send(5) = &H2 send(6) = &H4 '字节数 本地址存储下位机地址 为单字节 Call LTB(CByte(Text_ALARM.Text), stemp()) 写入标定压力值 send(7) = stemp(0) send(8) = stemp(1) send(9) = stemp(2) send(10) = stemp(3) Call CRC16(send(), 10, crc()) send(11) = crc(1) send(12) = crc(0) MSComm.Output = send TX_address = ALARM Call StartScan End Sub Private Sub Command_BUTTON_CLEARA_Click() If vbCancel = (MsgBox("电流校准数据是否清除?", vbOKCancel vbExclamation, "提示")) Then Exit Sub '如果 End If Command_BUTTON_DemarkA.Enabled = True Command_BUTTON_CLEARA.Enabled = False Call DemarkA(0#, 0#) End Sub Private Sub Command_BUTTON_DemarkA_Click() Command_BUTTON_DemarkA.Enabled = False Command_BUTTON_CLEARA.Enabled = True Call DemarkA(CSng(Text_4mA.Text), CSng(Text_20mA.Text)) End Sub Private Sub DemarkA(dat1 As Single, dat2 As Single) Dim count As Byte Dim position As Byte Dim send(16) As Byte 定义发送数组 Dim crc(1) As Byte Dim item(1) As Byte Dim stemp(3) As Byte Dim address As Integer Dim outpercent As Single Call WaitForScan send(0) = CByte(Combo_Meter.Text) send(1) = &H10 Call ITB(U4, item()) send(2) = item(1) send(3) = item(0) send(4) = &H0 send(5) = &H4 send(6) = &H8 Call STB(dat1, stemp()) 写入标定压力值 send(7) = stemp(0) send(8) = stemp(1) send(9) = stemp(2) send(10) = stemp(3) Call STB(dat2, stemp()) 写入标定压力值 send(11) = stemp(0) send(12) = stemp(1) send(13) = stemp(2) send(14) = stemp(3) Call CRC16(send(), 14, crc()) send(15) = crc(1) send(16) = crc(0) MSComm.Output = send TX_address = ADD Call StartScan End Sub Private Sub Command_BUTTON_DP1_Click() Call demarkp(1) End Sub Private Sub Command_BUTTON_DP10_Click() Call demarkp(10) End Sub Private Sub Command_BUTTON_DP2_Click() Call demarkp(2) End Sub Private Sub Command_BUTTON_DP3_Click() Call WaitForScan Call demarkp(3) End Sub Private Sub Command_BUTTON_DP4_Click() Call demarkp(4) End Sub Private Sub Command_BUTTON_DP5_Click() Call demarkp(5) End Sub Private Sub Command_BUTTON_DP6_Click() Call demarkp(6) End Sub Private Sub Command_BUTTON_DP7_Click() Call demarkp(7) End Sub Private Sub Command_BUTTON_DP8_Click() Call demarkp(8) End Sub Private Sub Command_BUTTON_DP9_Click() Call demarkp(9) End Sub '温度20度标定值 Private Sub Command_BUTTON_DT20_Click() Dim count As Byte Dim demark_A As Byte 轮寻标定位置 Dim send(12) As Byte 定义发送数组 Dim crc(1) As Byte Dim itemp(1) As Byte Dim ltemp(3) As Byte Dim stemp(3) As Byte Dim address As Integer Dim outpercent As Single Call WaitForScan For demark_A = 0 To 30 If Online(demark_A).address <= 0 Or Online(demark_A).address >= 255 Then 超出地址范围 则退出 Call StartScan Exit Sub End If send(0) = Online(demark_A).address send(1) = &H10 For count = 0 To 2 Call ITB(UT20, itemp()) '<a target="_brank" href="/goods/768">芯片</a>地址 send(2) = itemp(1) send(3) = itemp(0) send(4) = &H0 寄存器数,字节数 send(5) = &H2 send(6) = &H4 Call LTB(Online(demark_A).temperature_AD, ltemp()) 写入电压值 send(7) = ltemp(0) send(8) = ltemp(1) send(9) = ltemp(2) send(10) = ltemp(3) Call CRC16(send(), 10, crc()) send(11) = crc(1) send(12) = crc(0) On Error GoTo ErrorHandler 错误捕捉串口操作 MSComm.Output = send TX_address = UT20 Sleep (sleeptime) Comerr = 10 位置错误标志 若通信成功 修改位置 On Error GoTo ErrorHandler Call MSComm_OnComm 调用串口数据处理函数 查询是否有中等发生<hr><hr> If Comerr = 10 And count = 2 Then '检测通讯错误 如果出错则退出操作<hr> Call StartScan<hr> MsgBox "通讯出错,请检查连接", vbOKOnly + vbExclamation, "错误"<hr> Exit Sub<hr> ElseIf Comerr = 1 Then '通讯成功 则退出循环<hr> Exit For<hr> End If<hr> <hr> Next count<hr> Next demark_A '仪表地址循环<hr><hr> Call StartScan<hr>Exit Sub<hr><hr>ErrorHandler: '串口错误<hr> Call StartScan<hr> MsgBox "请打开串口", vbOKOnly + vbExclamation, "错误"<hr> Comerr = 10 '置位错误状态<hr> <hr>End Sub<hr><hr>Private Sub Command_BUTTON_DT60_Click()<hr> Dim count As Byte<hr> Dim demark_A As Byte '轮寻标定位置<hr> Dim send(12) As Byte '定义发送数组<hr> Dim crc(1) As Byte<hr> Dim itemp(1) As Byte<hr> Dim ltemp(3) As Byte<hr> Dim stemp(3) As Byte<hr> Dim address As Integer<hr> Dim outpercent As Single<hr> <hr> Call WaitForScan<hr> <hr> For demark_A = 0 To 30<hr> If Online(demark_A).address <= 0 Or Online(demark_A).address >= 255 Then '地址超范围 则退出<hr> Call StartScan<hr> Exit Sub<hr> End If<hr> <hr> send(0) = Online(demark_A).address<hr> send(1) = &H10<hr> <hr> For count = 0 To 2<hr> Call ITB(UT60, itemp()) '芯片地址<hr> send(2) = itemp(1)<hr> send(3) = itemp(0)<hr> <hr> send(4) = &H0 '寄存器数,字节数<hr> send(5) = &H2<hr> send(6) = &H4<hr> <hr> Call LTB(Online(demark_A).temperature_AD, ltemp()) '写入电压值<hr> send(7) = ltemp(0)<hr> send(8) = ltemp(1)<hr> send(9) = ltemp(2)<hr> send(10) = ltemp(3)<hr> <hr> Call CRC16(send(), 10, crc())<hr> send(11) = crc(1)<hr> send(12) = crc(0)<hr> <hr> On Error GoTo ErrorHandler '串口操作错误捕捉<hr> MSComm.Output = send<hr> TX_address = UT60<hr> <hr> Sleep (sleeptime)<hr> Comerr = 10 '置位错误标志 如果通讯成功 则本位置被修改<hr> On Error GoTo ErrorHandler<hr> Call MSComm_OnComm '调用串口数据处理函数 查询是否有中断发生<hr> <hr> If Comerr = 10 And count = 2 Then '检测通讯错误 如果出错则退出操作<hr> Call StartScan<hr> MsgBox "通讯出错,请检查连接", vbOKOnly + vbExclamation, "错误"<hr> Exit Sub<hr> ElseIf Comerr = 1 Then '通讯成功 则退出循环<hr> Exit For<hr> End If<hr> <hr> Next count<hr> Next demark_A '仪表地址循环<hr><hr> Call StartScan<hr>Exit Sub<hr><hr>ErrorHandler: '串口错误<hr> Call StartScan<hr> MsgBox "请打开串口", vbOKOnly + vbExclamation, "错误"<hr> Comerr = 10 '置位错误状态<hr> <hr>End Sub<hr><hr>Private Sub Command_BUTTON_DTF_Click()<hr> <hr> Dim count As Byte<hr> Dim position As Byte '选择标定点<hr> Dim demark_A As Byte '轮寻标定位置<hr> Dim send(12) As Byte '定义发送数组<hr> Dim sendt(10) As Byte<hr> Dim crc(1) As Byte<hr> Dim itemp(1) As Byte '将整形转换成2字节型数组<hr> Dim ltemp(3) As Byte '将长整形转换成4字节数组<hr> Dim stemp(3) As Byte '将浮点型转换成4字节数组<hr> <hr> Call WaitForScan<hr> <hr> For count = 0 To 9<hr> If Option_DT(count).Value = True Then<hr> position = count<hr> Exit For<hr> End If<hr> Next count<hr> <hr> For count = 0 To 1<hr> <hr> Next count<hr> <hr> demark_A = 0 '置位轮寻标定位置<hr> <hr> For demark_A = 0 To 30<hr> If Online(demark_A).address <= 0 Or Online(demark_A).address >= 255 Then '地址超范围 则退出<hr> Call StartScan<hr> Exit Sub<hr> End If<hr> <hr> For count = 0 To 2<hr> <hr> send(0) = Online(demark_A).address '置位操作地址<hr> send(1) = &H10<hr> <hr> Call ITB(TF + 4 * position, itemp()) '芯片地址<hr> send(2) = itemp(1)<hr> send(3) = itemp(0)<hr> <hr> send(4) = &H0 '寄存器数,字节数<hr> send(5) = &H2<hr> send(6) = &H4<hr> <hr> Call STB(Online(demark_A).press, stemp()) '写入标定压力值<hr> send(7) = stemp(0)<hr> send(8) = stemp(1)<hr> send(9) = stemp(2)<hr> send(10) = stemp(3)<hr> <hr> Call CRC16(send(), 10, crc())<hr> send(11) = crc(1)<hr> send(12) = crc(0)<hr> <hr> MSComm.Output = send<hr> <hr> Sleep (sleeptime)<hr> Comerr = 10 '置位错误标志 如果通讯成功 则本位置被修改<hr> Call MSComm_OnComm '调用串口数据处理函数 查询是否有中断发生<hr> <hr> If Comerr = 10 And count = 2 Then '检测通讯错误 如果出错则退出操作<hr> Call StartScan<hr> MsgBox "通讯出错,请检查连接", vbOKOnly + vbExclamation, "错误"<hr> Call StartScan<hr> Exit Sub<hr> ElseIf Comerr = 1 Then '通讯成功 则退出循环<hr> Exit For<hr> End If<hr> Next count<hr> <hr> For count = 0 To 2 '写入温度<hr> <hr> sendt(0) = Online(demark_A).address '置位操作地址<hr> sendt(1) = &H10<hr> <hr> Call ITB(TTEM + 2 * position, itemp()) '芯片地址<hr> sendt(2) = itemp(1)<hr> sendt(3) = itemp(0)<hr> <hr> sendt(4) = &H0 '寄存器数,字节数<hr> sendt(5) = &H1<hr> sendt(6) = &H2<hr> <hr> Call ITB(CInt(Online(demark_A).temperature * 10#), itemp()) '写入标定压力值<hr> sendt(7) = itemp(0)<hr> sendt(8) = itemp(1)<hr><hr> Call CRC16(sendt(), 8, crc())<hr> sendt(9) = crc(1)<hr> sendt(10) = crc(0)<hr> <hr> MSComm.Output = sendt<hr> <hr> Sleep (sleeptime)<hr> Comerr = 10 '置位错误标志 如果通讯成功 则本位置被修改<hr> Call MSComm_OnComm '调用串口数据处理函数 查询是否有中断发生<hr> <hr> If Comerr = 10 And count = 2 Then '检测通讯错误 如果出错则退出操作<hr> Call StartScan<hr> MsgBox "通讯出错,请检查连接", vbOKOnly + vbExclamation, "错误"<hr> Exit Sub<hr> ElseIf Comerr = 1 Then '通讯成功 则退出循环<hr> Exit For<hr> End If<hr> Next count<hr> <hr> Next demark_A '仪表地址循环<hr> <hr> Call StartScan<hr>End Sub<hr><hr>Private Sub Command_BUTTON_DTZ_Click() '零点标定<hr><hr> Dim count As Byte<hr> Dim position As Byte '选择标定点<hr> Dim demark_A As Byte '轮寻标定位置<hr> Dim send(12) As Byte '定义发送数组<hr> Dim crc(1) As Byte<hr> Dim itemp(1) As Byte '将整形转换成2字节型数组<hr> Dim ltemp(3) As Byte '将长整形转换成4字节数组<hr> Dim stemp(3) As Byte '将浮点型转换成4字节数组<hr> <hr> Call WaitForScan<hr> <hr> For count = 0 To 9<hr> If Option_DT(count).Value = True Then<hr> position = count<hr> Exit For<hr> End If<hr> Next count<hr> <hr> demark_A = 0 '置位轮寻标定位置<hr> <hr> For demark_A = 0 To 30<hr> If Online(demark_A).address <= 0 Or Online(demark_A).address >= 255 Then '地址超范围 则退出<hr> Call StartScan<hr> Exit Sub<hr> End If<hr> <hr> For count = 0 To 2<hr> <hr> send(0) = Online(demark_A).address '置位操作地址<hr> send(1) = &H10<hr> <hr> Call ITB(TZ + 4 * position, itemp()) '芯片地址<hr> send(2) = itemp(1)<hr> send(3) = itemp(0)<hr> <hr> send(4) = &H0 '寄存器数,字节数<hr> send(5) = &H2<hr> send(6) = &H4<hr> <hr> Call STB(Online(demark_A).press, stemp()) '写入标定压力值<hr> send(7) = stemp(0)<hr> send(8) = stemp(1)<hr> send(9) = stemp(2)<hr> send(10) = stemp(3)<hr> <hr> Call CRC16(send(), 10, crc())<hr> send(11) = crc(1)<hr> send(12) = crc(0)<hr> <hr> MSComm.Output = send<hr> <hr> Sleep (sleeptime)<hr> Comerr = 10 '置位错误标志 如果通讯成功 则本位置被修改<hr> Call MSComm_OnComm '调用串口数据处理函数 查询是否有中断发生<hr> <hr> If Comerr = 10 And count = 2 Then '检测通讯错误 如果出错则退出操作<hr> Call StartScan<hr> MsgBox "通讯出错,请检查连接", vbOKOnly + vbExclamation, "错误"<hr> Exit Sub<hr> ElseIf Comerr = 1 Then '通讯成功 则退出循环<hr> Exit For<hr> End If<hr> Next count<hr> <hr> Next demark_A '仪表地址循环<hr> <hr> Call StartScan<hr>End Sub<hr><hr>Private Sub Combo_com_Click()<hr> Command_BUTTON_Opencom.Caption = "打开串口"<hr>End Sub<hr><hr>Private Sub Command_BUTTON_DP0_Click() '写入标定0点<hr> Call demarkp(0)<hr>End Sub<hr><hr>Private Sub Command_BUTTON_ExitA_Click() '退出固定电流输出模式 此功能与输出电流模式同 以后可精简<hr><hr> Dim crc(1) As Byte<hr> Dim item(1) As Byte<hr> Dim stemp(3) As Byte<hr> Dim send(12) As Byte '定义发送数组<hr> Dim outpercent As Single<hr> <hr> Call WaitForScan<hr> <hr> outpercent = 200# '输出无效值<hr> <hr> send(0) = CByte(Combo_Meter.Text)<hr> send(1) = &H10<hr> <hr> Call ITB(IOUT, item())<hr> <hr> send(2) = item(1)<hr> send(3) = item(0)<hr> <hr> send(4) = &H0<hr> send(5) = &H2<hr> send(6) = &H4<hr> <hr> Call STB(outpercent, stemp()) '写入标定压力值<hr> send(7) = stemp(0)<hr> send(8) = stemp(1)<hr> send(9) = stemp(2)<hr> send(10) = stemp(3)<hr> <hr> Call CRC16(send(), 10, crc())<hr> send(11) = crc(1)<hr> send(12) = crc(0)<hr> <hr> MSComm.Output = send<hr> <hr> TX_address = ADD<hr> <hr> Call StartScan<hr>End Sub<hr><hr>Private Sub Command_BUTTON_OPENCOM_Click()<hr><hr> If MSComm.PortOpen Then MSComm.PortOpen = False<hr> <hr> On Error GoTo ErrorHandler<hr> <hr> MSComm.CommPort = Combo_com.ListIndex + 1<hr> MSComm.InputMode = comInputModeBinary<hr> MSComm.InputLen = 0<hr> MSComm.RThreshold = 1<hr> MSComm.SThreshold = 0<hr> MSComm.PortOpen = True<hr> <hr> On Error GoTo ErrorHandler<hr> Command_BUTTON_Opencom.Caption = "串口已打开"<hr>Exit Sub<hr><hr>ErrorHandler:<hr> MsgBox "打开串口时出错", vbOKOnly + vbExclamation, "错误"<hr>End Sub<hr><hr>Private Sub Command_BUTTON_OutA_Click()<hr> Dim count As Byte<hr> Dim position As Byte<hr> Dim send(12) As Byte '定义发送数组<hr> Dim crc(1) As Byte<hr> Dim item(1) As Byte<hr> Dim stemp(3) As Byte<hr> Dim address As Integer<hr> Dim outpercent As Single<hr> <hr> Call WaitForScan<hr> <hr> For count = 0 To 6<hr> If Option_IOut(count).Value = True Then<hr> position = count<hr> Exit For<hr> End If<hr> Next count '确定输出电流值<hr> <hr> Select Case position '计算输出百分比<hr> Case 0<hr> outpercent = -0.0125<hr> Case 1<hr> outpercent = 0#<hr> Case 2<hr> outpercent = 25#<hr> Case 3<hr> outpercent = 50#<hr> Case 4<hr> outpercent = 75#<hr> Case 5<hr> outpercent = 100#<hr> Case 6<hr> outpercent = 100.05<hr> Case Else<hr> outpercent = -0.0125<hr> End Select<hr> <hr> send(0) = CByte(Combo_Meter.Text)<hr> send(1) = &H10<hr> <hr> Call ITB(IOUT, item()) 'ITB将整形转换成2字节型<hr> <hr> send(2) = item(1)<hr> send(3) = item(0)<hr> <hr> send(4) = &H0<hr> send(5) = &H2<hr> send(6) = &H4<hr> <hr> Call STB(outpercent, stemp()) '写入标定压力值 '将浮点型转换成4字节型<hr> send(7) = stemp(0)<hr> send(8) = stemp(1)<hr> send(9) = stemp(2)<hr> send(10) = stemp(3)<hr> <hr> <hr> Call CRC16(send(), 10, crc())<hr> send(11) = crc(1)<hr> send(12) = crc(0)<hr> <hr> MSComm.Output = send<hr> TX_address = ADD<hr> Call StartScan<hr> <hr>End Sub<hr><hr>Private Sub Command_Button_PR_Click()<hr> <hr> Label_RP1.Caption = "AD采集值"<hr> Label_RP2.Caption = "标定点"<hr> Label_RP3.Caption = ""<hr> Text_D03.Visible = False<hr> Text_D13.Visible = False<hr> Text_D23.Visible = False<hr> Text_D33.Visible = False<hr> Text_D43.Visible = False<hr> Text_D53.Visible = False<hr> Text_D63.Visible = False<hr> Text_D73.Visible = False<hr> Text_D83.Visible = False<hr> Text_D93.Visible = False<hr> Text_D103.Visible = False<hr> Text_D01.Visible = True<hr> Text_D02.Visible = True<hr> Command_BUTTON_TP(0).Visible = True<hr> <hr> Choose_TR_PR = 1 '当单击压力参数读取时,Choose_PR_TR=1 触发标志<hr> Timer_press_AD.Enabled = True<hr> <hr>End Sub<hr><hr>Private Sub Command_BUTTON_READADD_Click() '采用公共地址读取仪表地址<hr> <hr> Dim count As Integer<hr> Dim send(7) As Byte '定义发送数组<hr> Dim crc(1) As Byte<hr> Dim item(1) As Byte<hr> <hr> Call WaitForScan<hr> Text_RAdd.Text = 0<hr> <hr> send(0) = &HFF<hr> send(1) = &H3<hr> <hr> Call ITB(ADD, item())<hr> <hr> send(2) = item(1)<hr> send(3) = item(0)<hr> <hr> send(4) = &H0<hr> send(5) = &H1<hr> Call CRC16(send(), 5, crc())<hr> send(6) = crc(1)<hr> send(7) = crc(0)<hr> <hr> MSComm.Output = send<hr> TX_address = ADD<hr> Call StartScan<hr> <hr>End Sub<hr><hr>'芯片复位,本功能将清除芯片内所有数据<hr><hr>Private Sub Command_BUTTON_RESET_Click()<hr> Dim count As Integer<hr> Dim send(9) As Byte '定义发送数组<hr> Dim crc(1) As Byte<hr> Dim item(1) As Byte<hr> Dim address As Integer<hr> <hr> Call WaitForScan<hr> <hr> If vbCancel = (MsgBox("本功能将使芯片置于初始状态,芯片内所有数据都将被清除,是否继续", vbOKCancel + vbExclamation, "提示")) Then<hr> Exit Sub '询问是否继续清除<hr> End If<hr> <hr> send(0) = &HFF<hr> send(1) = &H10<hr><hr> Call ITB(ULOCK, item())<hr> <hr> send(2) = item(1) '寄存器地址<hr> send(3) = item(0)<hr> <hr> send(4) = &H0 '寄存器数量<hr> send(5) = &H1<hr> send(6) = &H1 '字节数 本地址存储下位机地址 为单字节<hr> send(7) = &H0<hr> <hr> Call CRC16(send(), 7, crc())<hr> send(8) = crc(1)<hr> send(9) = crc(0)<hr> <hr> MSComm.Output = send<hr> TX_address = ULOCK<hr> <hr> Call StartScan<hr> <hr>End Sub<hr><hr>Private Sub Command_BUTTON_Scan_Click()<hr> Call WaitForScan '停止其他扫描<hr> Timer_SCAN.Enabled = True '扫描仪表 顺序扫描地址<hr>End Sub<hr><hr>Private Sub Command_BUTTON_SETADD_Click() '采用公共地址设定仪表地址<hr> Dim count As Integer<hr> Dim send(9) As Byte '定义发送数组<hr> Dim crc(1) As Byte<hr> Dim item(1) As Byte<hr> Dim address As Integer<hr> <hr> Call WaitForScan<hr> <hr> send(0) = &HFF<hr> send(1) = &H10<hr><hr> Call ITB(ADD, item())<hr> <hr> send(2) = item(1) '寄存器地址<hr> send(3) = item(0)<hr> <hr> send(4) = &H0 '寄存器数量<hr> send(5) = &H1<hr> <hr> send(6) = &H1 '字节数 本地址存储下位机地址 为单字节<hr> <hr> send(7) = CByte(Text_RAdd.Text)<hr> <hr> Call CRC16(send(), 7, crc())<hr> send(8) = crc(1)<hr> send(9) = crc(0)<hr> <hr> MSComm.Output = send<hr> TX_address = ADD<hr> <hr> Call StartScan<hr> <hr>End Sub<hr><hr>Private Sub Command_Button_TR_Click()<hr><hr> Label_RP1.Caption = "温度"<hr> Label_RP2.Caption = "零点"<hr> Label_RP3.Caption = "满程"<hr> Text_D03.Visible = True<hr> Text_D13.Visible = True<hr> Text_D23.Visible = True<hr> Text_D33.Visible = True<hr> Text_D43.Visible = True<hr> Text_D53.Visible = True<hr> Text_D63.Visible = True<hr> Text_D73.Visible = True<hr> Text_D83.Visible = True<hr> Text_D93.Visible = True<hr> Text_D103.Visible = True<hr> Text_D01.Visible = False<hr> Text_D02.Visible = False<hr> Text_D03.Visible = False<hr> Command_BUTTON_TP(0).Visible = False<hr> <hr> Choose_TR_PR = 0 '当单击温度参数读取时,Choose_PR_TR=0 触发标志<hr> <hr> Timer_Temp_Read.Enabled = True<hr> <hr>End Sub<hr><hr>Private Sub Command19_Click()<hr> Dim data(3) As Byte<hr> Dim temp As Long<hr> <hr> data(0) = &H25<hr> data(1) = &H52<hr> data(2) = &H9A<hr> data(3) = &H44<hr> <hr> temp = BTS(data())<hr> temp = 0<hr> <hr>End Sub<hr><hr>Private Sub Form_Load()<hr> Dim count As Integer<hr> Dim str As String<hr> str = "COM"<hr> For count = 1 To 12 '添加串口<hr> Combo_com.AddItem str & count<hr> Next count<hr> <hr> scanaddP = 1 '置位扫描位置<hr> <hr>End Sub<hr><hr>Private Sub M_ALL_Click()<hr> SSTab.Tab = 0<hr>End Sub<hr><hr>Private Sub M_DI_Click()<hr> SSTab.Tab = 1<hr>End Sub<hr><hr>Private Sub M_DP_Click()<hr> SSTab.Tab = 2<hr>End Sub<hr><hr>Private Sub M_DT_Click()<hr> SSTab.Tab = 3<hr>End Sub<hr><hr>Private Sub M_Exit_Click()<hr> Unload Form_main<hr>End Sub<hr><hr>Private Sub M_Online_Click()<hr> SSTab.Tab = 4<hr>End Sub<hr><hr>Private Sub M_Parameter_Click()<hr> SSTab.Tab = 5<hr>End Sub<hr><hr>Private Sub MSComm_OnComm() '串口数据接收函数<hr><hr> Dim count As Long<hr> Dim counttemp As Long<hr> Dim tmpBuf() As Byte<hr> Dim crc(1) As Byte<hr> <hr> Dim i As Integer<hr> <hr> Dim tmpData(1) As Byte '温度<hr> Dim tmpDataZ(3) As Byte '零点<hr> Dim tmpDataF(3) As Byte '满程<hr> <hr> Dim preAdData(3) As Byte 'AD采集值<hr> Dim preData(3) As Byte '标定点<hr><hr> Sleep (50)<hr> <hr> If MSComm.CommEvent = comEvReceive Then '接收数据流处理<hr> Erase RxData '清空数组<hr> Erase TxData '清空数组<hr> tmpBuf = MSComm.Input<hr> counttemp = UBound(tmpBuf)<hr> For count = 0 To counttemp<hr> RxData(count) = tmpBuf(count)<hr> Next count<hr> <hr> '串口接收数据<hr> If RxData(1) = &H3 Then '03读寄存器命令处理<hr> Call CRC16(RxData(), RxData(2) + 2, crc())<hr> If (RxData(RxData(2) + 4) = crc(0)) And (RxData(RxData(2) + 3) = crc(1)) Then 'CRC校验成功<hr> Comerr = 1 '通讯正常 通过CRC校验判定写入是否成功<hr> <hr> '综合参数设置--读取地址<hr> If (TX_address = 40001) Or (TX_address = 0) Then '地址匹配成功<hr> For count = 0 To 30<hr> If (Online(count).address = 0) Or (Online(count).address = RxData(0)) Then '地址匹配 继续处理<hr> Dim st2(1) As Byte<hr> Dim st4(3) As Byte<hr> <hr> Online(count).address = RxData(0)<hr> <hr> st4(3) = RxData(3)<hr> st4(2) = RxData(4)<hr> st4(1) = RxData(5)<hr> st4(0) = RxData(6)<hr> Online(count).final = BTS(st4) '数据转换 赋值给在线仪表<hr> <hr> st4(3) = RxData(7)<hr> st4(2) = RxData(8)<hr> st4(1) = RxData(9)<hr> st4(0) = RxData(10)<hr> Online(count).temperature = BTS(st4) '数据转换 赋值给在线仪表<hr> <hr> st4(3) = RxData(11)<hr> st4(2) = RxData(12)<hr> st4(1) = RxData(13)<hr> st4(0) = RxData(14)<hr> Online(count).press_AD = BTL(st4) '数据转换 赋值给在线仪表<hr> <hr> st4(3) = RxData(15)<hr> st4(2) = RxData(16)<hr> st4(1) = RxData(17)<hr> st4(0) = RxData(18)<hr> Online(count).press = BTS(st4) '数据转换 赋值给在线仪表<hr> <hr> st4(3) = RxData(19)<hr> st4(2) = RxData(20)<hr> st4(1) = RxData(21)<hr> st4(0) = RxData(22)<hr> Online(count).temperature_AD = BTL(st4) '数据转换 赋值给在线仪表<hr> Exit For<hr> End If<hr> Next count<hr> ElseIf (TX_address <= &H10FF) And (TX_address >= &H1000) Then<hr> If TX_address = ADD Then '单表读取及设定地址处理<hr> Text_RAdd.Text = RxData(3)<hr> Exit Sub<hr> End If<hr> <hr> For counttemp = 0 To 29 '选择当前操作地址<hr> If Online(counttemp).address = RxData(0) Then<hr> Exit For<hr> End If<hr> Next counttemp<hr> <hr> Select Case Choose_TR_PR<hr> Case 0 '温度参数读取<hr> For count = 0 To (RxData(2) - 1) '将数据转存<hr> DemarcateT(counttemp).demarcate(TX_address - &H1000 + count) = RxData(3 + count)<hr> Next count<hr> <hr> For i = 0 To 9<hr> tmpData(1) = DemarcateT(counttemp).demarcate(i * 2)<hr> tmpData(0) = DemarcateT(counttemp).demarcate(i * 2 + 1)<hr> <hr> tmpDataZ(0) = DemarcateT(counttemp).demarcate(i * 4 + 20)<hr> tmpDataZ(1) = DemarcateT(counttemp).demarcate(i * 4 + 21)<hr> tmpDataZ(2) = DemarcateT(counttemp).demarcate(i * 4 + 22)<hr> tmpDataZ(3) = DemarcateT(counttemp).demarcate(i * 4 + 23)<hr> <hr> tmpDataF(0) = DemarcateT(counttemp).demarcate(i * 4 + 60)<hr> tmpDataF(1) = DemarcateT(counttemp).demarcate(i * 4 + 61)<hr> tmpDataF(2) = DemarcateT(counttemp).demarcate(i * 4 + 62)<hr> tmpDataF(3) = DemarcateT(counttemp).demarcate(i * 4 + 63)<hr> <hr> DemarcateT(counttemp).temperature(i) = BTI(tmpData())<hr> DemarcateT(counttemp).zero(i) = BTS(tmpDataZ())<hr> DemarcateT(counttemp).full(i) = BTS(tmpDataF())<hr> Next i<hr> <hr> Text_D11.Text = DemarcateT(counttemp).temperature(0) / 10 '溫度<hr> Text_D21.Text = DemarcateT(counttemp).temperature(1) / 10<hr> Text_D31.Text = DemarcateT(counttemp).temperature(2) / 10<hr> Text_D41.Text = DemarcateT(counttemp).temperature(3) / 10<hr> Text_D51.Text = DemarcateT(counttemp).temperature(4) / 10<hr> Text_D61.Text = DemarcateT(counttemp).temperature(5) / 10<hr> Text_D71.Text = DemarcateT(counttemp).temperature(6) / 10<hr> Text_D81.Text = DemarcateT(counttemp).temperature(7) / 10<hr> Text_D91.Text = DemarcateT(counttemp).temperature(8) / 10<hr> Text_D101.Text = DemarcateT(counttemp).temperature(9) / 10<hr> <hr> Text_D12.Text = Format(DemarcateT(counttemp).zero(0), "##0.00000") '零點<hr> Text_D22.Text = Format(DemarcateT(counttemp).zero(1), "##0.00000")<hr> Text_D32.Text = Format(DemarcateT(counttemp).zero(2), "##0.00000")<hr> Text_D42.Text = Format(DemarcateT(counttemp).zero(3), "##0.00000")<hr> Text_D52.Text = Format(DemarcateT(counttemp).zero(4), "##0.00000")<hr> Text_D62.Text = Format(DemarcateT(counttemp).zero(5), "##0.00000")<hr> Text_D72.Text = Format(DemarcateT(counttemp).zero(6), "##0.00000")<hr> Text_D82.Text = Format(DemarcateT(counttemp).zero(7), "##0.00000")<hr> Text_D92.Text = Format(DemarcateT(counttemp).zero(8), "##0.00000")<hr> Text_D102.Text = Format(DemarcateT(counttemp).zero(9), "##0.00000")<hr> <hr> Text_D13.Text = Format(DemarcateT(counttemp).full(0), "##0.00000") '滿程<hr> Text_D23.Text = Format(DemarcateT(counttemp).full(1), "##0.00000")<hr> Text_D33.Text = Format(DemarcateT(counttemp).full(2), "##0.00000")<hr> Text_D43.Text = Format(DemarcateT(counttemp).full(3), "##0.00000")<hr> Text_D53.Text = Format(DemarcateT(counttemp).full(4), "##0.00000")<hr> Text_D63.Text = Format(DemarcateT(counttemp).full(5), "##0.00000")<hr> Text_D73.Text = Format(DemarcateT(counttemp).full(6), "##0.00000")<hr> Text_D83.Text = Format(DemarcateT(counttemp).full(7), "##0.00000")<hr> Text_D93.Text = Format(DemarcateT(counttemp).full(8), "##0.00000")<hr> Text_D103.Text = Format(DemarcateT(counttemp).full(9), "##0.00000")<hr> Case 1 '压力参数读取<hr> For count = 0 To (RxData(2) - 1) '将数据转存<hr> DemarcateP(counttemp).demarcate(TX_address - &H1080 + count) = RxData(3 + count)<hr> Next count<hr> <hr> For i = 0 To 10<hr> preAdData(0) = DemarcateP(counttemp).demarcate(i * 4)<hr> preAdData(1) = DemarcateP(counttemp).demarcate(i * 4 + 1)<hr> preAdData(2) = DemarcateP(counttemp).demarcate(i * 4 + 2)<hr> preAdData(3) = DemarcateP(counttemp).demarcate(i * 4 + 3)<hr> <hr> preData(0) = DemarcateP(counttemp).demarcate(i * 4 + 44)<hr> preData(1) = DemarcateP(counttemp).demarcate(i * 4 + 45)<hr> preData(2) = DemarcateP(counttemp).demarcate(i * 4 + 46)<hr> preData(3) = DemarcateP(counttemp).demarcate(i * 4 + 47)<hr> <hr> DemarcateP(counttemp).voltage(i) = BTL(preAdData())<hr> DemarcateP(counttemp).offset(i) = BTS(preData())<hr> Next i<hr> <hr> Text_D01.Text = DemarcateP(counttemp).voltage(0) 'AD采集值<hr> Text_D11.Text = DemarcateP(counttemp).voltage(1)<hr> Text_D21.Text = DemarcateP(counttemp).voltage(2)<hr> Text_D31.Text = DemarcateP(counttemp).voltage(3)<hr> Text_D41.Text = DemarcateP(counttemp).voltage(4)<hr> Text_D51.Text = DemarcateP(counttemp).voltage(5)<hr> Text_D61.Text = DemarcateP(counttemp).voltage(6)<hr> Text_D71.Text = DemarcateP(counttemp).voltage(7)<hr> Text_D81.Text = DemarcateP(counttemp).voltage(8)<hr> Text_D91.Text = DemarcateP(counttemp).voltage(9)<hr> Text_D101.Text = DemarcateP(counttemp).voltage(10)<hr> <hr> Text_D02.Text = Format(DemarcateP(counttemp).offset(0), "##0.00000") '标定点<hr> Text_D12.Text = Format(DemarcateP(counttemp).offset(1), "##0.00000")<hr> Text_D22.Text = Format(DemarcateP(counttemp).offset(2), "##0.00000")<hr> Text_D32.Text = Format(DemarcateP(counttemp).offset(3), "##0.00000")<hr> Text_D42.Text = Format(DemarcateP(counttemp).offset(4), "##0.00000")<hr> Text_D52.Text = Format(DemarcateP(counttemp).offset(5), "##0.00000")<hr> Text_D62.Text = Format(DemarcateP(counttemp).offset(6), "##0.00000")<hr> Text_D72.Text = Format(DemarcateP(counttemp).offset(7), "##0.00000")<hr> Text_D82.Text = Format(DemarcateP(counttemp).offset(8), "##0.00000")<hr> Text_D92.Text = Format(DemarcateP(counttemp).offset(9), "##0.00000")<hr> Text_D102.Text = Format(DemarcateP(counttemp).offset(10), "##0.00000")<hr> End Select<hr> End If<hr> End If<hr> End If<hr> <hr> If RxData(1) = &H10 Then '10写命令<hr> Call CRC16(RxData(), 5, crc()) 'CRC校验<hr> If RxData(6) = crc(1) And RxData(7) = crc(0) Then '校验成功<hr> Comerr = 1 '通讯正常<hr> End If<hr> End If<hr> End If<hr><hr>End Sub<hr><hr>Private Sub Online_Click()<hr> SSTab.Tab = 4<hr>End Sub<hr><hr>Private Sub Option_0_06_Click()<hr> Text_D0.Text = Format(0, "##0.0")<hr> Text_D1.Text = Format(0.1, "##0.0")<hr> Text_D2.Text = Format(0.2, "##0.0")<hr> Text_D3.Text = Format(0.3, "##0.0")<hr> Text_D4.Text = Format(0.4, "##0.0")<hr> Text_D5.Text = Format(0.5, "##0.0")<hr> Text_D6.Text = Format(0.6, "##0.0")<hr> Text_D7.Text = Format(0, "##0.0")<hr> Text_D8.Text = Format(0, "##0.0")<hr> Text_D9.Text = Format(0, "##0.0")<hr> Text_D10.Text = Format(0, "##0.0")<hr> preAD = 0<hr>End Sub<hr><hr>Private Sub Option_0_10_Click()<hr> Text_D0.Text = Format(0, "##0.0")<hr> Text_D1.Text = Format(1, "##0.0")<hr> Text_D2.Text = Format(2, "##0.0")<hr> Text_D3.Text = Format(3, "##0.0")<hr> Text_D4.Text = Format(4, "##0.0")<hr> Text_D5.Text = Format(5, "##0.0")<hr> Text_D6.Text = Format(6, "##0.0")<hr> Text_D7.Text = Format(7, "##0.0")<hr> Text_D8.Text = Format(8, "##0.0")<hr> Text_D9.Text = Format(9, "##0.0")<hr> Text_D10.Text = Format(10, "##0.0")<hr> preAD = 1<hr>End Sub<hr><hr>Private Sub Option_0_100_Click()<hr> Text_D0.Text = Format(0#, "##0.0")<hr> Text_D1.Text = Format(1#, "##0.0")<hr> Text_D2.Text = Format(2#, "##0.0")<hr> Text_D3.Text = Format(3#, "##0.0")<hr> Text_D4.Text = Format(4#, "##0.0")<hr> Text_D5.Text = Format(5#, "##0.0")<hr> Text_D6.Text = Format(6#, "##0.0")<hr> Text_D7.Text = Format(7#, "##0.0")<hr> Text_D8.Text = Format(8#, "##0.0")<hr> Text_D9.Text = Format(9#, "##0.0")<hr> Text_D10.Text = Format(10#, "##0.0")<hr> preAD = 2<hr>End Sub<hr><hr>Private Sub Option_0_1000_Click()<hr> Text_D0.Text = Format(0#, "##0.0")<hr> Text_D1.Text = Format(10#, "##0.0")<hr> Text_D2.Text = Format(20#, "##0.0")<hr> Text_D3.Text = Format(30#, "##0.0")<hr> Text_D4.Text = Format(40#, "##0.0")<hr> Text_D5.Text = Format(50#, "##0.0")<hr> Text_D6.Text = Format(60#, "##0.0")<hr> Text_D7.Text = Format(70#, "##0.0")<hr> Text_D8.Text = Format(80#, "##0.0")<hr> Text_D9.Text = Format(90#, "##0.0")<hr> Text_D10.Text = Format(100#, "##0.0")<hr> preAD = 3<hr>End Sub<hr><hr>Private Sub Option_0_16_Click()<hr> Text_D0.Text = Format(0, "##0.0")<hr> Text_D1.Text = Format(0.2, "##0.0")<hr> Text_D2.Text = Format(0.4, "##0.0")<hr> Text_D3.Text = Format(0.6, "##0.0")<hr> Text_D4.Text = Format(0.8, "##0.0")<hr> Text_D5.Text = Format(1#, "##0.0")<hr> Text_D6.Text = Format(1.2, "##0.0")<hr> Text_D7.Text = Format(1.4, "##0.0")<hr> Text_D8.Text = Format(1.6, "##0.0")<hr> Text_D9.Text = Format(0#, "##0.0")<hr> Text_D10.Text = Format(0#, "##0.0")<hr> preAD = 4<hr>End Sub<hr><hr>Private Sub Option_0_160_Click()<hr> Text_D0.Text = Format(0#, "##0.0")<hr> Text_D1.Text = Format(2#, "##0.0")<hr> Text_D2.Text = Format(4#, "##0.0")<hr> Text_D3.Text = Format(6#, "##0.0")<hr> Text_D4.Text = Format(8#, "##0.0")<hr> Text_D5.Text = Format(10#, "##0.0")<hr> Text_D6.Text = Format(12#, "##0.0")<hr> Text_D7.Text = Format(14#, "##0.0")<hr> Text_D8.Text = Format(16#, "##0.0")<hr> Text_D9.Text = Format(0#, "##0.0")<hr> Text_D10.Text = Format(0#, "##0.0")<hr> preAD = 5<hr>End Sub<hr><hr>Private Sub Option_0_25_Click()<hr> Text_D0.Text = Format(0#, "##0.0")<hr> Text_D1.Text = Format(0.5, "##0.0")<hr> Text_D2.Text = Format(1#, "##0.0")<hr> Text_D3.Text = Format(1.5, "##0.0")<hr> Text_D4.Text = Format(2#, "##0.0")<hr> Text_D5.Text = Format(2.5, "##0.0")<hr> Text_D6.Text = Format(0#, "##0.0")<hr> Text_D7.Text = Format(0#, "##0.0")<hr> Text_D8.Text = Format(0#, "##0.0")<hr> Text_D9.Text = Format(0#, "##0.0")<hr> Text_D10.Text = Format(0#, "##0.0")<hr> preAD = 6<hr>End Sub<hr><hr>Private Sub Option_0_250_Click()<hr> Text_D0.Text = Format(0#, "##0.0")<hr> Text_D1.Text = Format(5#, "##0.0")<hr> Text_D2.Text = Format(10#, "##0.0")<hr> Text_D3.Text = Format(15#, "##0.0")<hr> Text_D4.Text = Format(20#, "##0.0")<hr> Text_D5.Text = Format(25#, "##0.0")<hr> Text_D6.Text = Format(0#, "##0.0")<hr> Text_D7.Text = Format(0#, "##0.0")<hr> Text_D8.Text = Format(0#, "##0.0")<hr> Text_D9.Text = Format(0#, "##0.0")<hr> Text_D10.Text = Format(0#, "##0.0")<hr> preAD = 7<hr>End Sub<hr><hr>Private Sub Option_0_40_Click()<hr> Text_D0.Text = Format(0#, "##0.0")<hr> Text_D1.Text = Format(0.5, "##0.0")<hr> Text_D2.Text = Format(1#, "##0.0")<hr> Text_D3.Text = Format(1.5, "##0.0")<hr> Text_D4.Text = Format(2#, "##0.0")<hr> Text_D5.Text = Format(2.5, "##0.0")<hr> Text_D6.Text = Format(3#, "##0.0")<hr> Text_D7.Text = Format(3.5, "##0.0")<hr> Text_D8.Text = Format(4#, "##0.0")<hr> Text_D9.Text = Format(0#, "##0.0")<hr> Text_D10.Text = Format(0#, "##0.0")<hr> preAD = 8<hr>End Sub<hr><hr>Private Sub Option_0_400_Click()<hr> Text_D0.Text = Format(0#, "##0.0")<hr> Text_D1.Text = Format(5#, "##0.0")<hr> Text_D2.Text = Format(10#, "##0.0")<hr> Text_D3.Text = Format(15#, "##0.0")<hr> Text_D4.Text = Format(20#, "##0.0")<hr> Text_D5.Text = Format(25#, "##0.0")<hr> Text_D6.Text = Format(30#, "##0.0")<hr> Text_D7.Text = Format(35#, "##0.0")<hr> Text_D8.Text = Format(40#, "##0.0")<hr> Text_D9.Text = Format(0#, "##0.0")<hr> Text_D10.Text = Format(0#, "##0.0")<hr> preAD = 9<hr>End Sub<hr><hr>Private Sub Option_0_60_Click()<hr> Text_D0.Text = Format(0#, "##0.0")<hr> Text_D1.Text = Format(1#, "##0.0")<hr> Text_D2.Text = Format(2#, "##0.0")<hr> Text_D3.Text = Format(3#, "##0.0")<hr> Text_D4.Text = Format(4#, "##0.0")<hr> Text_D5.Text = Format(5#, "##0.0")<hr> Text_D6.Text = Format(60#, "##0.0")<hr> Text_D7.Text = Format(0#, "##0.0")<hr> Text_D8.Text = Format(0#, "##0.0")<hr> Text_D9.Text = Format(0#, "##0.0")<hr> Text_D10.Text = Format(0#, "##0.0")<hr> preAD = 10<hr>End Sub<hr><hr>Private Sub Option_0_600_Click()<hr> Text_D0.Text = Format(0#, "##0.0")<hr> Text_D1.Text = Format(10#, "##0.0")<hr> Text_D2.Text = Format(20#, "##0.0")<hr> Text_D3.Text = Format(30#, "##0.0")<hr> Text_D4.Text = Format(40#, "##0.0")<hr> Text_D5.Text = Format(50#, "##0.0")<hr> Text_D6.Text = Format(60#, "##0.0")<hr> Text_D7.Text = Format(0#, "##0.0")<hr> Text_D8.Text = Format(0#, "##0.0")<hr> Text_D9.Text = Format(0#, "##0.0")<hr> Text_D10.Text = Format(0#, "##0.0")<hr> preAD = 11<hr>End Sub<hr><hr>'压力仪表标定采用查询串口方式<hr>'每次发送命令等待50mS读取数据,通讯成功则继续,否则重新发送,两次以上错误则认为仪表离线,提示检查连接<hr>'按仪表循环标定,直至最后一个在线仪表写入完毕<hr><hr>Private Sub demarkp(demarkp As Byte) '仪表压力标定<hr> <hr> Dim demark_A As Byte '轮寻标定位置<hr> Dim count As Integer<hr> Dim send(12) As Byte '定义发送数组<hr> Dim crc(1) As Byte<hr> Dim itemp(1) As Byte '将整形转换成2字节型数组<hr> Dim ltemp(3) As Byte '将长整形转换成4字节数组<hr> Dim stemp(3) As Byte '将浮点型转换成4字节数组<hr> <hr> Call WaitForScan<hr><hr> <hr> demark_A = 0 '置位轮寻标定位置<hr> <hr> For demark_A = 0 To 30<hr> If Online(demark_A).address <= 0 Or Online(demark_A).address >= 255 Then '地址超范围 则退出<hr> Call StartScan<hr> Exit Sub<hr> End If<hr> <hr> For count = 0 To 2<hr> <hr> send(0) = Online(demark_A).address '置位操作地址<hr> send(1) = &H10<hr> <hr> Call ITB(LB + 4 * demarkp, itemp()) '芯片地址<hr> send(2) = itemp(1)<hr> send(3) = itemp(0)<hr> <hr> send(4) = &H0 '寄存器数,字节数<hr> send(5) = &H2<hr> send(6) = &H4<hr> <hr> Select Case demarkp<hr> Case 0<hr> Call STB(CSng(Text_D0.Text), stemp()) '写入标定压力值<hr> Case 1<hr> Call STB(CSng(Text_D1.Text), stemp()) '写入标定压力值<hr> Case 2<hr> Call STB(CSng(Text_D2.Text), stemp()) '写入标定压力值<hr> Case 3<hr> Call STB(CSng(Text_D3.Text), stemp()) '写入标定压力值<hr> Case 4<hr> Call STB(CSng(Text_D4.Text), stemp()) '写入标定压力值<hr> Case 5<hr> Call STB(CSng(Text_D5.Text), stemp()) '写入标定压力值<hr> Case 6<hr> Call STB(CSng(Text_D6.Text), stemp()) '写入标定压力值<hr> Case 7<hr> Call STB(CSng(Text_D7.Text), stemp()) '写入标定压力值<hr> Case 8<hr> Call STB(CSng(Text_D8.Text), stemp()) '写入标定压力值<hr> Case 9<hr> Call STB(CSng(Text_D9.Text), stemp()) '写入标定压力值<hr> Case 10<hr> Call STB(CSng(Text_D10.Text), stemp()) '写入标定压力值<hr> End Select<hr> <hr> send(7) = stemp(0)<hr> send(8) = stemp(1)<hr> send(9) = stemp(2)<hr> send(10) = stemp(3)<hr> <hr> <hr> Call CRC16(send(), 10, crc())<hr> send(11) = crc(1)<hr> send(12) = crc(0)<hr> <hr> On Error GoTo ErrorHandler '串口操作错误捕捉<hr> MSComm.Output = send<hr> <hr> Sleep (sleeptime)<hr> Comerr = 10 '置位错误标志 如果通讯成功 则本位置被修改<hr> Call MSComm_OnComm '调用串口数据处理函数 查询是否有中断发生<hr> <hr> If Comerr = 10 And count = 2 Then '检测通讯错误 如果出错则退出操作<hr> Call StartScan<hr> MsgBox "通讯出错,请检查连接", vbOKOnly + vbExclamation, "错误"<hr> Exit Sub<hr> ElseIf Comerr = 1 Then '通讯成功 则退出循环<hr> Exit For<hr> End If<hr> Next count<hr> <hr> For count = 0 To 2<hr> <hr> Call ITB(LBIN + 4 * demarkp, itemp()) '芯片地址<hr> send(2) = itemp(1)<hr> send(3) = itemp(0)<hr> <hr> send(4) = &H0 '寄存器数,字节数<hr> send(5) = &H2<hr> send(6) = &H4<hr> <hr> Call LTB(Online(demark_A).press_AD, ltemp()) '写入电压值<hr> send(7) = ltemp(0)<hr> send(8) = ltemp(1)<hr> send(9) = ltemp(2)<hr> send(10) = ltemp(3)<hr> <hr> Call CRC16(send(), 10, crc())<hr> send(11) = crc(1)<hr> send(12) = crc(0)<hr> <hr> On Error GoTo ErrorHandler '串口操作错误捕捉<hr> MSComm.Output = send<hr> <hr> Sleep (sleeptime)<hr> Comerr = 10 '置位错误标志 如果通讯成功 则本位置被修改<hr> Call MSComm_OnComm '调用串口数据处理函数 查询是否有中断发生<hr> <hr> If Comerr = 10 And count = 2 Then '检测通讯错误 如果出错则退出操作<hr> Call StartScan<hr> MsgBox "通讯出错,请检查连接", vbOKOnly + vbExclamation, "错误"<hr> Exit Sub<hr> ElseIf Comerr = 1 Then '通讯成功 则退出循环<hr> Exit For<hr> End If<hr> Next count<hr> Next demark_A '仪表地址循环<hr><hr> Call StartScan<hr>Exit Sub<hr><hr>ErrorHandler: '串口错误<hr> Call StartScan<hr> MsgBox "请打开串口", vbOKOnly + vbExclamation, "错误"<hr> Comerr = 10 '置位错误状态<hr> <hr>End Sub<hr><hr>Private Sub Parameter_Click()<hr> SSTab.Tab = 5<hr>End Sub<hr><hr><hr><hr>Private Sub Timer_LISTRENOVATE_Timer() '刷新列表及更新仪表数据<hr> Dim count As Integer<hr> Dim itm As ListItem<hr> Dim send(7) As Byte '定义发送数组<hr> Dim crc(1) As Byte<hr><hr> ListView_Display.ListItems.Clear<hr> <hr> For count = 0 To 30 '更新仪表数据<hr> If Online(count).address <> 0 Then<hr> Set itm = ListView_Display.ListItems.ADD()<hr> itm.Text = Online(count).address<hr> itm.SubItems(1) = Format(Online(count).final, "##0.00000")<hr> itm.SubItems(2) = Format(Online(count).press, "##0.00000")<hr> itm.SubItems(3) = Format(Online(count).temperature, "##0.00000")<hr> itm.SubItems(4) = Online(count).press_AD<hr> Else<hr> Exit For<hr> End If<hr> Next count<hr><hr> If Online(scanaddP).address <> 0 Then<hr> <hr> send(0) = Online(scanaddP).address<hr> send(1) = &H3<hr> send(2) = &H0<hr> send(3) = &H0<hr> send(4) = &H0<hr> send(5) = &HA<hr> Call CRC16(send(), 5, crc())<hr> send(6) = crc(1)<hr> send(7) = crc(0)<hr> <hr> On Error GoTo ErrorHandler<hr> scanaddP = scanaddP + 1<hr> MSComm.Output = send<hr> TX_address = 0<hr> Else<hr> scanaddP = 0<hr> End If<hr><hr>Exit Sub<hr>ErrorHandler:<hr> Call StartScan<hr> Timer_SCAN.Enabled = False<hr> MsgBox "请打开串口", vbOKOnly + vbExclamation, "错误"<hr>End Sub<hr><hr>Private Sub Timer_SCAN_Timer() '每500ms中断一次 按地址一次扫描<hr> Dim count As Integer<hr> Dim send(7) As Byte '定义发送数组<hr> Dim crc(1) As Byte<hr> <hr> If scanaddP < 31 Then<hr> send(0) = scanaddP<hr> scanaddP = scanaddP + 1<hr> If ProgressBar.Value < 300 Then<hr> ProgressBar.Value = ProgressBar.Value + 10<hr> End If<hr> Else<hr> scanaddP = 1 '将扫描到的地址填入地址栏<hr> For count = 0 To 30<hr> If Online(count).address <> 0 Then<hr> Combo_Meter.AddItem Online(count).address, count<hr> End If<hr> Next count<hr> ProgressBar.Value = 0<hr> Timer_SCAN.Enabled = False<hr> MsgBox "扫描仪表结束", vbOKOnly, "提示"<hr> Timer_LISTRENOVATE.Enabled = True<hr>Exit Sub<hr> End If<hr> <hr> send(1) = &H3<hr> send(2) = &H0<hr> send(3) = &H0<hr> send(4) = &H0<hr> send(5) = &HA<hr> Call CRC16(send(), 5, crc())<hr> send(6) = crc(1)<hr> send(7) = crc(0)<hr> <hr> On Error GoTo ErrorHandler<hr> MSComm.Output = send<hr> TX_address = 0<hr>Exit Sub<hr><hr>ErrorHandler:<hr> Call StartScan<hr> Timer_SCAN.Enabled = False<hr> MsgBox "请打开串口", vbOKOnly + vbExclamation, "错误"<hr>End Sub<hr><hr>Private Sub WaitForScan()<hr> <hr> Dim clearInput() As Byte<hr> Timer_LISTRENOVATE.Enabled = False<hr> Sleep (sleeptime) '发送命令之前停止扫描<hr> Call MSComm_OnComm<hr><hr>End Sub<hr><hr>Private Sub StartScan()<hr> Sleep (sleeptime)<hr> Timer_LISTRENOVATE.Enabled = True<hr>End Sub<hr><hr>'参数读取--单点修改<hr>Private Sub Command_BUTTON_TP_Click(Index As Integer)<hr> Dim count As Integer<hr> Select Case Choose_TR_PR<hr> Case 0<hr> For count = 0 To 2<hr> Call temp_ValueWrite(Index)<hr> Comerr = 10 '置位错误标志,如果通讯成功则本位置被修改<hr> Call MSComm_OnComm '调用串口数据处理函数,查询是否有中断发生<hr> If Comerr = 10 And count = 2 Then '检测通讯错误,如果出错则退出操作<hr> Exit Sub<hr> ElseIf Comerr = 1 Then '通讯成功,退出循环<hr> Exit For<hr> End If<hr> Next count<hr> <hr> For count = 0 To 2<hr> Call tempZ_ValueWrite(Index)<hr> Comerr = 10 '置位错误标志,如果通讯成功则本位置被修改<hr> Call MSComm_OnComm '调用串口数据处理函数,查询是否有中断发生<hr> If Comerr = 10 And count = 2 Then '检测通讯错误,如果出错则退出操作<hr> Exit Sub<hr> ElseIf Comerr = 1 Then '通讯成功,退出循环<hr> Exit For<hr> End If<hr> Next count<hr> <hr> For count = 0 To 2<hr> Call tempF_ValueWrite(Index)<hr> Comerr = 10 '置位错误标志,如果通讯成功则本位置被修改<hr> Call MSComm_OnComm '调用串口数据处理函数,查询是否有中断发生<hr> If Comerr = 10 And count = 2 Then '检测通讯错误,如果出错则退出操作<hr> Exit Sub<hr> ElseIf Comerr = 1 Then '通讯成功,退出循环<hr> Exit For<hr> End If<hr> Next count<hr> <hr> Case 1<hr> For count = 0 To 2<hr> Call press_ADValueWrite(Index)<hr> Comerr = 10 '置位错误标志,如果通讯成功则本位置被修改<hr> Call MSComm_OnComm '调用串口数据处理函数,查询是否有中断发生<hr> If Comerr = 10 And count = 2 Then '检测通讯错误,如果出错则退出操作<hr> Exit Sub<hr> ElseIf Comerr = 1 Then '通讯成功,退出循环<hr> Exit For<hr> End If<hr> Next count<hr> <hr> For count = 0 To 2<hr> Call press_SpotWrite(Index)<hr> Comerr = 10 '置位错误标志,如果通讯成功则本位置被修改<hr> Call MSComm_OnComm '调用串口数据处理函数,查询是否有中断发生<hr> If Comerr = 10 And count = 2 Then '检测通讯错误,如果出错则退出操作<hr> Exit Sub<hr> ElseIf Comerr = 1 Then '通讯成功,退出循环<hr> Exit For<hr> End If<hr> Next count<hr><hr> End Select<hr>End Sub<hr><hr>'参数读取--压力参数读取--读出<hr>Private Sub Timer_press_AD_Timer()<hr> Dim send(7) As Byte<hr> Dim crc(1) As Byte<hr> Dim itemp(1) As Byte<hr> <hr> Call WaitForScan<hr><hr> send(0) = CByte(Val(Combo_Meter.Text)) '在线仪表首地址<hr> <hr> If pre < 11 Then<hr> <hr> TX_address = &H1080 + pre * 10<hr> send(1) = &H3 '03读寄存器命令<hr> <hr> Call ITB(LBIN, itemp()) '压力AD采集值 地址<hr> send(2) = itemp(1)<hr> send(3) = itemp(0) + pre * 10<hr> send(4) = &H0<hr> send(5) = &HA '寄存器数<hr> Call CRC16(send(), 5, crc()) 'CRC校验<hr> send(6) = crc(1)<hr> send(7) = crc(0)<hr> <hr> MSComm.Output = send<hr> <hr> Sleep 300<hr> <hr> pre = pre + 1<hr> <hr> Comerr = 10 '置位错误标志 如果通讯成功 则本位置被修改<hr> Call MSComm_OnComm '调用串口数据处理函数 查询是否有中断发生<hr> <hr> Else<hr> pre = 0<hr> Timer_press_AD.Enabled = False<hr> End If<hr><hr> Call StartScan<hr>End Sub<hr><hr>'参数读取--温度参数读取--读出<hr>Private Sub Timer_Temp_Read_timer()<hr> Dim send(7) As Byte<hr> Dim crc(1) As Byte<hr> Dim itemp(1) As Byte<hr> <hr> Call WaitForScan<hr> <hr> send(0) = CByte(Val(Combo_Meter.Text))<hr> <hr> If tmp < 10 Then<hr> <hr> TX_address = &H1000 + tmp * 10<hr> send(1) = &H3 '03读寄存器命令<hr> <hr> Call ITB(TTEM, itemp())<hr> send(2) = itemp(1)<hr> send(3) = itemp(0) + tmp * 10<hr> send(4) = &H0<hr> send(5) = &HA '寄存器数<hr> <hr> Call CRC16(send(), 5, crc()) 'CRC校验<hr> send(6) = crc(1)<hr> send(7) = crc(0)<hr> <hr> MSComm.Output = send<hr> Sleep 300<hr> <hr> tmp = tmp + 1<hr> <hr> Comerr = 10 '置位错误标志 如果通讯成功 则本位置被修改<hr> Call MSComm_OnComm '调用串口数据处理函数 查询是否有中断发生<hr> ElseIf tmp > 9 Then<hr> tmp = 0<hr> Timer_Temp_Read.Enabled = False<hr> End If<hr>End Sub<hr><hr>'参数读取--压力参数读取--AD采集值写入<hr>Private Sub press_ADValueWrite(Index As Integer)<hr> Dim send(12) As Byte<hr> Dim itemp(1) As Byte<hr> Dim stemp(3) As Byte<hr> Dim crc(1) As Byte<hr> Dim count As Integer<hr> <hr> send(0) = CByte(Val(Combo_Meter.Text)) '在线仪表首地址<hr> send(1) = &H10 '10写寄存器命令<hr> <hr> Call ITB(LBIN + 4 * Index, itemp()) '地址,写压力<hr> send(2) = itemp(1)<hr> send(3) = itemp(0)<hr> <hr> send(4) = &H0<hr> send(5) = &H2 '寄存器数目<hr> send(6) = &H4 '字节数<hr> <hr> Select Case Index<hr> Case 0<hr> Call LTB(CSng(Text_D01.Text), stemp())<hr> Case 1<hr> Call LTB(CSng(Text_D11.Text), stemp())<hr> Case 2<hr> Call LTB(CSng(Text_D21.Text), stemp())<hr> Case 3<hr> Call LTB(CSng(Text_D31.Text), stemp())<hr> Case 4<hr> Call LTB(CSng(Text_D41.Text), stemp())<hr> Case 5<hr> Call LTB(CSng(Text_D51.Text), stemp())<hr> Case 6<hr> Call LTB(CSng(Text_D61.Text), stemp())<hr> Case 7<hr> Call LTB(CSng(Text_D71.Text), stemp())<hr> Case 8<hr> Call LTB(CSng(Text_D81.Text), stemp())<hr> Case 9<hr> Call LTB(CSng(Text_D91.Text), stemp())<hr> Case 10<hr> Call LTB(CSng(Text_D101.Text), stemp())<hr> End Select<hr> <hr> send(7) = stemp(0)<hr> send(8) = stemp(1)<hr> send(9) = stemp(2)<hr> send(10) = stemp(3)<hr> <hr> Call CRC16(send(), 10, crc()) 'CRC校验<hr> send(11) = crc(1)<hr> send(12) = crc(0)<hr> <hr> MSComm.Output = send<hr> Sleep 500<hr><hr>End Sub<hr><hr>'参数读取--压力参数读取--标定点写入<hr>Private Sub press_SpotWrite(Index As Integer)<hr> Dim send(12) As Byte<hr> Dim itemp(1) As Byte<hr> Dim stemp(3) As Byte<hr> Dim crc(1) As Byte<hr> Dim count As Integer<hr> <hr> send(0) = CByte(Val(Combo_Meter.Text)) '在线仪表首地址<hr> send(1) = &H10 '10写寄存器命令<hr> <hr> Call ITB(LB + 4 * Index, itemp()) '地址,写压力<hr> send(2) = itemp(1)<hr> send(3) = itemp(0)<hr> <hr> send(4) = &H0<hr> send(5) = &H2 '寄存器数目<hr> send(6) = &H4 '字节数<hr> <hr> Select Case Index<hr> Case 0<hr> Call STB(CSng(Text_D02.Text), stemp())<hr> Case 1<hr> Call STB(CSng(Text_D12.Text), stemp())<hr> Case 2<hr> Call STB(CSng(Text_D22.Text), stemp())<hr> Case 3<hr> Call STB(CSng(Text_D32.Text), stemp())<hr> Case 4<hr> Call STB(CSng(Text_D42.Text), stemp())<hr> Case 5<hr> Call STB(CSng(Text_D52.Text), stemp())<hr> Case 6<hr> Call STB(CSng(Text_D62.Text), stemp())<hr> Case 7<hr> Call STB(CSng(Text_D72.Text), stemp())<hr> Case 8<hr> Call STB(CSng(Text_D82.Text), stemp())<hr> Case 9<hr> Call STB(CSng(Text_D92.Text), stemp())<hr> Case 10<hr> Call STB(CSng(Text_D102.Text), stemp())<hr> End Select<hr> <hr> send(7) = stemp(0)<hr> send(8) = stemp(1)<hr> send(9) = stemp(2)<hr> send(10) = stemp(3)<hr> <hr> Call CRC16(send(), 10, crc()) 'CRC校验<hr> send(11) = crc(1)<hr> send(12) = crc(0)<hr> <hr> MSComm.Output = send<hr> Sleep 500<hr><hr><hr>End Sub<hr><hr>'参数读取--温度参数读取--温度写入<hr>Private Sub temp_ValueWrite(Index As Integer)<hr> Dim send(10) As Byte<hr> Dim itemp(1) As Byte<hr> Dim stemp(1) As Byte<hr> Dim crc(1) As Byte<hr> <hr> send(0) = CByte(Val(Combo_Meter.Text)) '在线仪表首地址<hr> send(1) = &H10 '10写寄存器命令<hr> <hr> Call ITB(TTEM + 2 * (Index - 1), itemp()) '地址,写温度<hr> send(2) = itemp(1)<hr> send(3) = itemp(0)<hr> <hr> send(4) = &H0<hr> send(5) = &H1 '寄存器数目<hr> send(6) = &H2 '字节数<hr> <hr> Select Case Index<hr> Case 1<hr> Call ITB(CSng(Text_D11.Text), stemp())<hr> Case 2<hr> Call ITB(CSng(Text_D21.Text), stemp())<hr> Case 3<hr> Call ITB(CSng(Text_D31.Text), stemp())<hr> Case 4<hr> Call ITB(CSng(Text_D41.Text), stemp())<hr> Case 5<hr> Call ITB(CSng(Text_D51.Text), stemp())<hr> Case 6<hr> Call ITB(CSng(Text_D61.Text), stemp())<hr> Case 7<hr> Call ITB(CSng(Text_D71.Text), stemp())<hr> Case 8<hr> Call ITB(CSng(Text_D81.Text), stemp())<hr> Case 9<hr> Call ITB(CSng(Text_D91.Text), stemp())<hr> Case 10<hr> Call ITB(CSng(Text_D101.Text), stemp())<hr> End Select<hr> <hr> send(7) = stemp(0)<hr> send(8) = stemp(1)<hr> <hr> Call CRC16(send(), 8, crc()) 'CRC校验<hr> send(9) = crc(1)<hr> send(10) = crc(0)<hr> <hr> MSComm.Output = send<hr> Sleep 500<hr> <hr>End Sub<hr><hr>'参数读取--温度参数读取--零点写入<hr>Private Sub tempZ_ValueWrite(Index As Integer)<hr> Dim send(12) As Byte<hr> Dim itemp(1) As Byte<hr> Dim stemp(3) As Byte<hr> Dim crc(1) As Byte<hr> <hr> send(0) = CByte(Val(Combo_Meter.Text)) '在线仪表首地址<hr> send(1) = &H10 '10写寄存器命令<hr> <hr> Call ITB(TZ + 4 * (Index - 1), itemp()) '地址,写温度<hr> send(2) = itemp(1)<hr> send(3) = itemp(0)<hr> <hr> send(4) = &H0<hr> send(5) = &H1 '寄存器数目<hr> send(6) = &H2 '字节数<hr> <hr> Select Case Index<hr> Case 1<hr> Call STB(CSng(Text_D12.Text), stemp())<hr> Case 2<hr> Call STB(CSng(Text_D22.Text), stemp())<hr> Case 3<hr> Call STB(CSng(Text_D32.Text), stemp())<hr> Case 4<hr> Call STB(CSng(Text_D42.Text), stemp())<hr> Case 5<hr> Call STB(CSng(Text_D52.Text), stemp())<hr> Case 6<hr> Call STB(CSng(Text_D62.Text), stemp())<hr> Case 7<hr> Call STB(CSng(Text_D72.Text), stemp())<hr> Case 8<hr> Call STB(CSng(Text_D82.Text), stemp())<hr> Case 9<hr> Call STB(CSng(Text_D92.Text), stemp())<hr> Case 10<hr> Call STB(CSng(Text_D102.Text), stemp())<hr> End Select<hr> <hr> send(7) = stemp(0)<hr> send(8) = stemp(1)<hr> send(9) = stemp(2)<hr> send(10) = stemp(3)<hr> <hr> Call CRC16(send(), 10, crc()) 'CRC校验<hr> send(11) = crc(1)<hr> send(12) = crc(0)<hr> <hr> MSComm.Output = send<hr> Sleep 500<hr> <hr>End Sub<hr><hr>'参数读取--温度参数读取--满程写入<hr>Private Sub tempF_ValueWrite(Index As Integer)<hr> Dim send(12) As Byte<hr> Dim itemp(1) As Byte<hr> Dim stemp(3) As Byte<hr> Dim crc(1) As Byte<hr> <hr> send(0) = CByte(Val(Combo_Meter.Text)) '在线仪表首地址<hr> send(1) = &H10 '10写寄存器命令<hr> <hr> Call ITB(TF + 4 * (Index - 1), itemp()) '地址,写温度<hr> send(2)</div> <p class="tags" data-v-24602850> 标签: <a href="/tags/842" class="text-highlight" data-v-24602850>btl压力变送器</a><a href="/tags/4611" class="text-highlight" data-v-24602850>3051dp2a差压变送器</a><a href="/tags/8614" class="text-highlight" data-v-24602850>hd1电压变送器</a></p> <div data-v-24602850>锐单商城拥有海量<a href="/minstation/pdf/" class="text-highlight" data-v-24602850>元器件数据手册</a>、 <a href="/minstation/tidai/" class="text-highlight" data-v-24602850>IC替代型号</a>,打造 <a href="/minstation/ic/" class="text-highlight" data-v-24602850>电子元器件IC百科</a>大全! </div></div> <aside class="infomation-pannel" data-v-24602850><div class="infomation-show" data-v-24602850><h2 class="desc-title" data-v-24602850>热门文章 <span class="has-stock" data-v-24602850><i class="iconfont iconshang" data-v-24602850></i></span></h2> <div class="infomation-list" data-v-24602850><div class="infomation-content" data-v-24602850><div class="info-temp" data-v-24602850><div class="info-list" data-v-24602850><ul data-v-24602850><li data-v-24602850><div class="first-show" data-v-24602850><img src="https://web.ruidan.com/images/aritcle/programmes/20240321/thumbnail/52ffd54e07174100a151b11dfd0f2966.png?Expires=2341742726&OSSAccessKeyId=LTAIHgntmVKZP6VP&Signature=hd7ZMmbwjCT6HOLk1zAsTFc7kCM%3D" alt="动力学技术KTU1121 USB Type-C 端口保护器的介绍、特性、及应用" data-v-24602850> <div class="first-desc" data-v-24602850><h4 class="text-ellipsis" data-v-24602850><a href="/infomation/detail/289261" class="text-hover text-ellipsis" data-v-24602850>动力学技术KTU1121 USB Type-C 端口保护器的介绍、特性、及应用</a></h4> <p data-v-24602850> 具有四个过电压保护(OVP)的USB Type-C CC和SBU信号传导路径。 </p></div></div></li><li class="text-ellipsis" data-v-24602850><a href="/infomation/detail/289260" class="text-hover" data-v-24602850>Sensata PTE7300密封数字压力传感器的介绍、特性、及应用</a></li><li class="text-ellipsis" data-v-24602850><a href="/infomation/detail/289259" class="text-hover" data-v-24602850>PANJIT PBHV8110DA/PBHV9110DA低Vce(sat)晶体管的介绍、特性、及应用</a></li><li class="text-ellipsis" data-v-24602850><a href="/infomation/detail/289258" class="text-hover" data-v-24602850>ams OSRAM OSLON 黑色平板X LED器件的介绍、特性、及应用</a></li><li class="text-ellipsis" data-v-24602850><a href="/infomation/detail/289255" class="text-hover" data-v-24602850>Cree LED CLQ6A三合一贴片LED的介绍、特性、及应用</a></li><li class="text-ellipsis" data-v-24602850><a href="/infomation/detail/289254" class="text-hover" data-v-24602850>Cree LED CLQ6B 4-in-1 RGBW贴片LED的介绍、特性、及应用</a></li><li class="text-ellipsis" data-v-24602850><a href="/infomation/detail/289252" class="text-hover" data-v-24602850>NDK NX1210AB表面贴装晶体的介绍、特性、及应用</a></li><li class="text-ellipsis" data-v-24602850><a href="/infomation/detail/289169" class="text-hover" data-v-24602850>伊顿ACE2V3225共模芯片电感器的介绍、特性、及应用</a></li><li class="text-ellipsis" data-v-24602850><a href="/infomation/detail/289152" class="text-hover" data-v-24602850>意法半导体X040灵敏型栅可控硅和Z040可控硅的介绍、特性、及应用</a></li><li class="text-ellipsis" data-v-24602850><a href="/infomation/detail/289151" class="text-hover" data-v-24602850>ABLIC S-82Y1B电池保护芯片的介绍、特性、及应用</a></li><li class="text-ellipsis" data-v-24602850><a href="/infomation/detail/289150" class="text-hover" data-v-24602850>Bel Power Solutions RDT-6Y系列6W DC-DC转换器的介绍、特性、及应用</a></li></ul></div></div></div></div></div> <div class="infomation-show" data-v-24602850><h2 class="desc-title" data-v-24602850>热门型号 <span class="has-stock" data-v-24602850><i class="iconfont iconshang" data-v-24602850></i></span></h2> <div class="infomation-show product" data-v-24602850><ul data-v-24602850><li data-v-24602850><p class="text-link text-ellipsis" data-v-24602850><a href="/goods/detail/4482640" title="1.5KE91CA A0G" data-v-24602850>1.5KE91CA A0G</a></p></li><li data-v-24602850><p class="text-link text-ellipsis" data-v-24602850><a href="/goods/detail/4482642" title="SMBG64CA-M3/52" data-v-24602850>SMBG64CA-M3/52</a></p></li><li data-v-24602850><p class="text-link text-ellipsis" data-v-24602850><a href="/goods/detail/4482643" title="SM6T30AY" data-v-24602850>SM6T30AY</a></p></li><li data-v-24602850><p class="text-link text-ellipsis" data-v-24602850><a href="/goods/detail/4482644" title="A5KP6.0A-G" data-v-24602850>A5KP6.0A-G</a></p></li><li data-v-24602850><p class="text-link text-ellipsis" data-v-24602850><a href="/goods/detail/4482645" title="MF-USML300-2" data-v-24602850>MF-USML300-2</a></p></li><li data-v-24602850><p class="text-link text-ellipsis" data-v-24602850><a href="/goods/detail/4482647" title="15KP220A-TP" data-v-24602850>15KP220A-TP</a></p></li><li data-v-24602850><p class="text-link text-ellipsis" data-v-24602850><a href="/goods/detail/4482649" title="5.0SMDJ8.0CA-H" data-v-24602850>5.0SMDJ8.0CA-H</a></p></li><li data-v-24602850><p class="text-link text-ellipsis" data-v-24602850><a href="/goods/detail/4482650" title="MSMBG51CAE3" data-v-24602850>MSMBG51CAE3</a></p></li><li data-v-24602850><p class="text-link text-ellipsis" data-v-24602850><a href="/goods/detail/4482653" title="SM15T12CA-M3/9AT" data-v-24602850>SM15T12CA-M3/9AT</a></p></li><li data-v-24602850><p class="text-link text-ellipsis" data-v-24602850><a href="/goods/detail/4482654" title="ACPDUC5V0U-HF" data-v-24602850>ACPDUC5V0U-HF</a></p></li></ul></div></div></aside> <footer style="height:50px;background:#d2d2d2;display:flex;width:100%;justify-content:center;align-items:center;" data-v-24602850><p>锐单商城 - 一站式电子元器件采购平台 </p></footer></div> <nav class="tabbar"><a href="/" class="nuxt-link-active"><div class="bar first is-active">首页</div></a> <a href="/goods/"><div class="bar cate">选型</div></a> <a href="/brand/"><div class="bar pin">品牌</div></a> <a href="/cart" rel="nofollow"><div class="bar cart">购物车</div></a> <a href="/user" rel="nofollow"><div class="bar mine">我的</div></a></nav> <div class="mint-popup popup-search mint-popup-right" style="display:none;"><div class="search-panel" data-v-0073b1a1><div class="hd b-flex-align-center" data-v-0073b1a1><a rel="nofllow" class="back b-flex-shrink0" data-v-0073b1a1></a> <a class="mint-cell mint-field search-input b-flex-grow1 is-nolabel" data-v-0073b1a1><!----> <div class="mint-cell-left"></div> <div class="mint-cell-wrapper"><div class="mint-cell-title"><!----> <span class="mint-cell-text"></span> <!----></div> <div class="mint-cell-value"><input placeholder="请输入型号、参数、品牌" type="text" value="" class="mint-field-core"> <div class="mint-field-clear" style="display:none;"><i class="mintui mintui-field-error"></i></div> <span class="mint-field-state is-default"><i class="mintui mintui-field-default"></i></span> <div class="mint-field-other"></div></div> <!----></div> <div class="mint-cell-right"></div></a> <a rel="nofllow" class="ctrl b-flex-shrink0 text-light" data-v-0073b1a1>搜索</a></div> <div class="cont" data-v-0073b1a1><div class="search-block" data-v-0073b1a1><h6 data-v-0073b1a1>最近热搜</h6> <ul class="navs b-flex-wrap" data-v-0073b1a1></ul></div> <div class="search-block" data-v-0073b1a1><h6 data-v-0073b1a1>历史搜索 <span class="has-stock" data-v-0073b1a1>清除历史记录</span></h6> <ul class="navs b-flex-wrap" data-v-0073b1a1></ul></div></div></div></div></div></div></div></div><script>window.__NUXT__=(function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,_,$,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar){return {layout:"default",data:[{article:{id:136258,title:t,pictureUrl:a,introduction:"主程序:Option Explicit Const NAME_COLUMN = 0...Dim pre As Integer '参数读取--压力参数读取-标定 Dim tmp As Integer '参数读取--温度参数读取--温度 Private Sub Command_BUTTON_ALARM_Click() Dim coun",content:"\u003Chtml\u003E\n \u003Chead\u003E\u003C\u002Fhead\u003E\n \u003Cbody\u003E\n \u003Cdiv id=\"article_content\" class=\"article_content clearfix\"\u003E \n \u003Cdiv id=\"content_views\" class=\"htmledit_views\"\u003E \n \u003Cp\u003E主程序:\u003C\u002Fp\u003E \n \u003Cp\u003E\u003Ctextarea name=\"code\" class=\"vb\"\u003EOption Explicit Const NAME_COLUMN = 0 Const TYPE_COLUMN = 1 Const SIZE_COLUMN = 2 Const DATE_COLUMN = 3 Dim pre As Integer 读取参数-读取压力参数-标定 Dim tmp As Integer 温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度参数读取-温度-温度参数读-温度参-温度-温度参数读-温度-温度-温度-温度参数读-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度参数读-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度-温度 Private Sub Command_BUTTON_ALARM_Click() Dim count As Integer Dim send(9) As Byte 定义发送数组 Dim crc(1) As Byte Dim item(1) As Byte Dim address As Integer Dim stemp(3) As Byte Call WaitForScan send(0) = &HFF send(1) = &H10 Call ITB(ALARM, item()) send(2) = item(1) 寄存器地址 send(3) = item(0) send(4) = &H0 寄存器数量 send(5) = &H2 send(6) = &H4 '字节数 本地址存储下位机地址 为单字节 Call LTB(CByte(Text_ALARM.Text), stemp()) 写入标定压力值 send(7) = stemp(0) send(8) = stemp(1) send(9) = stemp(2) send(10) = stemp(3) Call CRC16(send(), 10, crc()) send(11) = crc(1) send(12) = crc(0) MSComm.Output = send TX_address = ALARM Call StartScan End Sub Private Sub Command_BUTTON_CLEARA_Click() If vbCancel = (MsgBox(\"电流校准数据是否清除?\", vbOKCancel vbExclamation, \"提示\")) Then Exit Sub '如果 End If Command_BUTTON_DemarkA.Enabled = True Command_BUTTON_CLEARA.Enabled = False Call DemarkA(0#, 0#) End Sub Private Sub Command_BUTTON_DemarkA_Click() Command_BUTTON_DemarkA.Enabled = False Command_BUTTON_CLEARA.Enabled = True Call DemarkA(CSng(Text_4mA.Text), CSng(Text_20mA.Text)) End Sub Private Sub DemarkA(dat1 As Single, dat2 As Single) Dim count As Byte Dim position As Byte Dim send(16) As Byte 定义发送数组 Dim crc(1) As Byte Dim item(1) As Byte Dim stemp(3) As Byte Dim address As Integer Dim outpercent As Single Call WaitForScan send(0) = CByte(Combo_Meter.Text) send(1) = &H10 Call ITB(U4, item()) send(2) = item(1) send(3) = item(0) send(4) = &H0 send(5) = &H4 send(6) = &H8 Call STB(dat1, stemp()) 写入标定压力值 send(7) = stemp(0) send(8) = stemp(1) send(9) = stemp(2) send(10) = stemp(3) Call STB(dat2, stemp()) 写入标定压力值 send(11) = stemp(0) send(12) = stemp(1) send(13) = stemp(2) send(14) = stemp(3) Call CRC16(send(), 14, crc()) send(15) = crc(1) send(16) = crc(0) MSComm.Output = send TX_address = ADD Call StartScan End Sub Private Sub Command_BUTTON_DP1_Click() Call demarkp(1) End Sub Private Sub Command_BUTTON_DP10_Click() Call demarkp(10) End Sub Private Sub Command_BUTTON_DP2_Click() Call demarkp(2) End Sub Private Sub Command_BUTTON_DP3_Click() Call WaitForScan Call demarkp(3) End Sub Private Sub Command_BUTTON_DP4_Click() Call demarkp(4) End Sub Private Sub Command_BUTTON_DP5_Click() Call demarkp(5) End Sub Private Sub Command_BUTTON_DP6_Click() Call demarkp(6) End Sub Private Sub Command_BUTTON_DP7_Click() Call demarkp(7) End Sub Private Sub Command_BUTTON_DP8_Click() Call demarkp(8) End Sub Private Sub Command_BUTTON_DP9_Click() Call demarkp(9) End Sub '温度20度标定值 Private Sub Command_BUTTON_DT20_Click() Dim count As Byte Dim demark_A As Byte 轮寻标定位置 Dim send(12) As Byte 定义发送数组 Dim crc(1) As Byte Dim itemp(1) As Byte Dim ltemp(3) As Byte Dim stemp(3) As Byte Dim address As Integer Dim outpercent As Single Call WaitForScan For demark_A = 0 To 30 If Online(demark_A).address <= 0 Or Online(demark_A).address >= 255 Then 超出地址范围 则退出 Call StartScan Exit Sub End If send(0) = Online(demark_A).address send(1) = &H10 For count = 0 To 2 Call ITB(UT20, itemp()) '\u003Ca target=\"_brank\" href=\"\u002Fgoods\u002F768\"\u003E芯片\u003C\u002Fa\u003E地址 send(2) = itemp(1) send(3) = itemp(0) send(4) = &H0 寄存器数,字节数 send(5) = &H2 send(6) = &H4 Call LTB(Online(demark_A).temperature_AD, ltemp()) 写入电压值 send(7) = ltemp(0) send(8) = ltemp(1) send(9) = ltemp(2) send(10) = ltemp(3) Call CRC16(send(), 10, crc()) send(11) = crc(1) send(12) = crc(0) On Error GoTo ErrorHandler 错误捕捉串口操作 MSComm.Output = send TX_address = UT20 Sleep (sleeptime) Comerr = 10 位置错误标志 若通信成功 修改位置 On Error GoTo ErrorHandler Call MSComm_OnComm 调用串口数据处理函数 查询是否有中等发生\u003Chr\u003E\u003Chr\u003E If Comerr = 10 And count = 2 Then '检测通讯错误 如果出错则退出操作\u003Chr\u003E Call StartScan\u003Chr\u003E MsgBox \"通讯出错,请检查连接\", vbOKOnly + vbExclamation, \"错误\"\u003Chr\u003E Exit Sub\u003Chr\u003E ElseIf Comerr = 1 Then '通讯成功 则退出循环\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E \u003Chr\u003E Next count\u003Chr\u003E Next demark_A '仪表地址循环\u003Chr\u003E\u003Chr\u003E Call StartScan\u003Chr\u003EExit Sub\u003Chr\u003E\u003Chr\u003EErrorHandler: '串口错误\u003Chr\u003E Call StartScan\u003Chr\u003E MsgBox \"请打开串口\", vbOKOnly + vbExclamation, \"错误\"\u003Chr\u003E Comerr = 10 '置位错误状态\u003Chr\u003E \u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Command_BUTTON_DT60_Click()\u003Chr\u003E Dim count As Byte\u003Chr\u003E Dim demark_A As Byte '轮寻标定位置\u003Chr\u003E Dim send(12) As Byte '定义发送数组\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E Dim itemp(1) As Byte\u003Chr\u003E Dim ltemp(3) As Byte\u003Chr\u003E Dim stemp(3) As Byte\u003Chr\u003E Dim address As Integer\u003Chr\u003E Dim outpercent As Single\u003Chr\u003E \u003Chr\u003E Call WaitForScan\u003Chr\u003E \u003Chr\u003E For demark_A = 0 To 30\u003Chr\u003E If Online(demark_A).address <= 0 Or Online(demark_A).address >= 255 Then '地址超范围 则退出\u003Chr\u003E Call StartScan\u003Chr\u003E Exit Sub\u003Chr\u003E End If\u003Chr\u003E \u003Chr\u003E send(0) = Online(demark_A).address\u003Chr\u003E send(1) = &H10\u003Chr\u003E \u003Chr\u003E For count = 0 To 2\u003Chr\u003E Call ITB(UT60, itemp()) '芯片地址\u003Chr\u003E send(2) = itemp(1)\u003Chr\u003E send(3) = itemp(0)\u003Chr\u003E \u003Chr\u003E send(4) = &H0 '寄存器数,字节数\u003Chr\u003E send(5) = &H2\u003Chr\u003E send(6) = &H4\u003Chr\u003E \u003Chr\u003E Call LTB(Online(demark_A).temperature_AD, ltemp()) '写入电压值\u003Chr\u003E send(7) = ltemp(0)\u003Chr\u003E send(8) = ltemp(1)\u003Chr\u003E send(9) = ltemp(2)\u003Chr\u003E send(10) = ltemp(3)\u003Chr\u003E \u003Chr\u003E Call CRC16(send(), 10, crc())\u003Chr\u003E send(11) = crc(1)\u003Chr\u003E send(12) = crc(0)\u003Chr\u003E \u003Chr\u003E On Error GoTo ErrorHandler '串口操作错误捕捉\u003Chr\u003E MSComm.Output = send\u003Chr\u003E TX_address = UT60\u003Chr\u003E \u003Chr\u003E Sleep (sleeptime)\u003Chr\u003E Comerr = 10 '置位错误标志 如果通讯成功 则本位置被修改\u003Chr\u003E On Error GoTo ErrorHandler\u003Chr\u003E Call MSComm_OnComm '调用串口数据处理函数 查询是否有中断发生\u003Chr\u003E \u003Chr\u003E If Comerr = 10 And count = 2 Then '检测通讯错误 如果出错则退出操作\u003Chr\u003E Call StartScan\u003Chr\u003E MsgBox \"通讯出错,请检查连接\", vbOKOnly + vbExclamation, \"错误\"\u003Chr\u003E Exit Sub\u003Chr\u003E ElseIf Comerr = 1 Then '通讯成功 则退出循环\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E \u003Chr\u003E Next count\u003Chr\u003E Next demark_A '仪表地址循环\u003Chr\u003E\u003Chr\u003E Call StartScan\u003Chr\u003EExit Sub\u003Chr\u003E\u003Chr\u003EErrorHandler: '串口错误\u003Chr\u003E Call StartScan\u003Chr\u003E MsgBox \"请打开串口\", vbOKOnly + vbExclamation, \"错误\"\u003Chr\u003E Comerr = 10 '置位错误状态\u003Chr\u003E \u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Command_BUTTON_DTF_Click()\u003Chr\u003E \u003Chr\u003E Dim count As Byte\u003Chr\u003E Dim position As Byte '选择标定点\u003Chr\u003E Dim demark_A As Byte '轮寻标定位置\u003Chr\u003E Dim send(12) As Byte '定义发送数组\u003Chr\u003E Dim sendt(10) As Byte\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E Dim itemp(1) As Byte '将整形转换成2字节型数组\u003Chr\u003E Dim ltemp(3) As Byte '将长整形转换成4字节数组\u003Chr\u003E Dim stemp(3) As Byte '将浮点型转换成4字节数组\u003Chr\u003E \u003Chr\u003E Call WaitForScan\u003Chr\u003E \u003Chr\u003E For count = 0 To 9\u003Chr\u003E If Option_DT(count).Value = True Then\u003Chr\u003E position = count\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E Next count\u003Chr\u003E \u003Chr\u003E For count = 0 To 1\u003Chr\u003E \u003Chr\u003E Next count\u003Chr\u003E \u003Chr\u003E demark_A = 0 '置位轮寻标定位置\u003Chr\u003E \u003Chr\u003E For demark_A = 0 To 30\u003Chr\u003E If Online(demark_A).address <= 0 Or Online(demark_A).address >= 255 Then '地址超范围 则退出\u003Chr\u003E Call StartScan\u003Chr\u003E Exit Sub\u003Chr\u003E End If\u003Chr\u003E \u003Chr\u003E For count = 0 To 2\u003Chr\u003E \u003Chr\u003E send(0) = Online(demark_A).address '置位操作地址\u003Chr\u003E send(1) = &H10\u003Chr\u003E \u003Chr\u003E Call ITB(TF + 4 * position, itemp()) '芯片地址\u003Chr\u003E send(2) = itemp(1)\u003Chr\u003E send(3) = itemp(0)\u003Chr\u003E \u003Chr\u003E send(4) = &H0 '寄存器数,字节数\u003Chr\u003E send(5) = &H2\u003Chr\u003E send(6) = &H4\u003Chr\u003E \u003Chr\u003E Call STB(Online(demark_A).press, stemp()) '写入标定压力值\u003Chr\u003E send(7) = stemp(0)\u003Chr\u003E send(8) = stemp(1)\u003Chr\u003E send(9) = stemp(2)\u003Chr\u003E send(10) = stemp(3)\u003Chr\u003E \u003Chr\u003E Call CRC16(send(), 10, crc())\u003Chr\u003E send(11) = crc(1)\u003Chr\u003E send(12) = crc(0)\u003Chr\u003E \u003Chr\u003E MSComm.Output = send\u003Chr\u003E \u003Chr\u003E Sleep (sleeptime)\u003Chr\u003E Comerr = 10 '置位错误标志 如果通讯成功 则本位置被修改\u003Chr\u003E Call MSComm_OnComm '调用串口数据处理函数 查询是否有中断发生\u003Chr\u003E \u003Chr\u003E If Comerr = 10 And count = 2 Then '检测通讯错误 如果出错则退出操作\u003Chr\u003E Call StartScan\u003Chr\u003E MsgBox \"通讯出错,请检查连接\", vbOKOnly + vbExclamation, \"错误\"\u003Chr\u003E Call StartScan\u003Chr\u003E Exit Sub\u003Chr\u003E ElseIf Comerr = 1 Then '通讯成功 则退出循环\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E Next count\u003Chr\u003E \u003Chr\u003E For count = 0 To 2 '写入温度\u003Chr\u003E \u003Chr\u003E sendt(0) = Online(demark_A).address '置位操作地址\u003Chr\u003E sendt(1) = &H10\u003Chr\u003E \u003Chr\u003E Call ITB(TTEM + 2 * position, itemp()) '芯片地址\u003Chr\u003E sendt(2) = itemp(1)\u003Chr\u003E sendt(3) = itemp(0)\u003Chr\u003E \u003Chr\u003E sendt(4) = &H0 '寄存器数,字节数\u003Chr\u003E sendt(5) = &H1\u003Chr\u003E sendt(6) = &H2\u003Chr\u003E \u003Chr\u003E Call ITB(CInt(Online(demark_A).temperature * 10#), itemp()) '写入标定压力值\u003Chr\u003E sendt(7) = itemp(0)\u003Chr\u003E sendt(8) = itemp(1)\u003Chr\u003E\u003Chr\u003E Call CRC16(sendt(), 8, crc())\u003Chr\u003E sendt(9) = crc(1)\u003Chr\u003E sendt(10) = crc(0)\u003Chr\u003E \u003Chr\u003E MSComm.Output = sendt\u003Chr\u003E \u003Chr\u003E Sleep (sleeptime)\u003Chr\u003E Comerr = 10 '置位错误标志 如果通讯成功 则本位置被修改\u003Chr\u003E Call MSComm_OnComm '调用串口数据处理函数 查询是否有中断发生\u003Chr\u003E \u003Chr\u003E If Comerr = 10 And count = 2 Then '检测通讯错误 如果出错则退出操作\u003Chr\u003E Call StartScan\u003Chr\u003E MsgBox \"通讯出错,请检查连接\", vbOKOnly + vbExclamation, \"错误\"\u003Chr\u003E Exit Sub\u003Chr\u003E ElseIf Comerr = 1 Then '通讯成功 则退出循环\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E Next count\u003Chr\u003E \u003Chr\u003E Next demark_A '仪表地址循环\u003Chr\u003E \u003Chr\u003E Call StartScan\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Command_BUTTON_DTZ_Click() '零点标定\u003Chr\u003E\u003Chr\u003E Dim count As Byte\u003Chr\u003E Dim position As Byte '选择标定点\u003Chr\u003E Dim demark_A As Byte '轮寻标定位置\u003Chr\u003E Dim send(12) As Byte '定义发送数组\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E Dim itemp(1) As Byte '将整形转换成2字节型数组\u003Chr\u003E Dim ltemp(3) As Byte '将长整形转换成4字节数组\u003Chr\u003E Dim stemp(3) As Byte '将浮点型转换成4字节数组\u003Chr\u003E \u003Chr\u003E Call WaitForScan\u003Chr\u003E \u003Chr\u003E For count = 0 To 9\u003Chr\u003E If Option_DT(count).Value = True Then\u003Chr\u003E position = count\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E Next count\u003Chr\u003E \u003Chr\u003E demark_A = 0 '置位轮寻标定位置\u003Chr\u003E \u003Chr\u003E For demark_A = 0 To 30\u003Chr\u003E If Online(demark_A).address <= 0 Or Online(demark_A).address >= 255 Then '地址超范围 则退出\u003Chr\u003E Call StartScan\u003Chr\u003E Exit Sub\u003Chr\u003E End If\u003Chr\u003E \u003Chr\u003E For count = 0 To 2\u003Chr\u003E \u003Chr\u003E send(0) = Online(demark_A).address '置位操作地址\u003Chr\u003E send(1) = &H10\u003Chr\u003E \u003Chr\u003E Call ITB(TZ + 4 * position, itemp()) '芯片地址\u003Chr\u003E send(2) = itemp(1)\u003Chr\u003E send(3) = itemp(0)\u003Chr\u003E \u003Chr\u003E send(4) = &H0 '寄存器数,字节数\u003Chr\u003E send(5) = &H2\u003Chr\u003E send(6) = &H4\u003Chr\u003E \u003Chr\u003E Call STB(Online(demark_A).press, stemp()) '写入标定压力值\u003Chr\u003E send(7) = stemp(0)\u003Chr\u003E send(8) = stemp(1)\u003Chr\u003E send(9) = stemp(2)\u003Chr\u003E send(10) = stemp(3)\u003Chr\u003E \u003Chr\u003E Call CRC16(send(), 10, crc())\u003Chr\u003E send(11) = crc(1)\u003Chr\u003E send(12) = crc(0)\u003Chr\u003E \u003Chr\u003E MSComm.Output = send\u003Chr\u003E \u003Chr\u003E Sleep (sleeptime)\u003Chr\u003E Comerr = 10 '置位错误标志 如果通讯成功 则本位置被修改\u003Chr\u003E Call MSComm_OnComm '调用串口数据处理函数 查询是否有中断发生\u003Chr\u003E \u003Chr\u003E If Comerr = 10 And count = 2 Then '检测通讯错误 如果出错则退出操作\u003Chr\u003E Call StartScan\u003Chr\u003E MsgBox \"通讯出错,请检查连接\", vbOKOnly + vbExclamation, \"错误\"\u003Chr\u003E Exit Sub\u003Chr\u003E ElseIf Comerr = 1 Then '通讯成功 则退出循环\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E Next count\u003Chr\u003E \u003Chr\u003E Next demark_A '仪表地址循环\u003Chr\u003E \u003Chr\u003E Call StartScan\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Combo_com_Click()\u003Chr\u003E Command_BUTTON_Opencom.Caption = \"打开串口\"\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Command_BUTTON_DP0_Click() '写入标定0点\u003Chr\u003E Call demarkp(0)\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Command_BUTTON_ExitA_Click() '退出固定电流输出模式 此功能与输出电流模式同 以后可精简\u003Chr\u003E\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E Dim item(1) As Byte\u003Chr\u003E Dim stemp(3) As Byte\u003Chr\u003E Dim send(12) As Byte '定义发送数组\u003Chr\u003E Dim outpercent As Single\u003Chr\u003E \u003Chr\u003E Call WaitForScan\u003Chr\u003E \u003Chr\u003E outpercent = 200# '输出无效值\u003Chr\u003E \u003Chr\u003E send(0) = CByte(Combo_Meter.Text)\u003Chr\u003E send(1) = &H10\u003Chr\u003E \u003Chr\u003E Call ITB(IOUT, item())\u003Chr\u003E \u003Chr\u003E send(2) = item(1)\u003Chr\u003E send(3) = item(0)\u003Chr\u003E \u003Chr\u003E send(4) = &H0\u003Chr\u003E send(5) = &H2\u003Chr\u003E send(6) = &H4\u003Chr\u003E \u003Chr\u003E Call STB(outpercent, stemp()) '写入标定压力值\u003Chr\u003E send(7) = stemp(0)\u003Chr\u003E send(8) = stemp(1)\u003Chr\u003E send(9) = stemp(2)\u003Chr\u003E send(10) = stemp(3)\u003Chr\u003E \u003Chr\u003E Call CRC16(send(), 10, crc())\u003Chr\u003E send(11) = crc(1)\u003Chr\u003E send(12) = crc(0)\u003Chr\u003E \u003Chr\u003E MSComm.Output = send\u003Chr\u003E \u003Chr\u003E TX_address = ADD\u003Chr\u003E \u003Chr\u003E Call StartScan\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Command_BUTTON_OPENCOM_Click()\u003Chr\u003E\u003Chr\u003E If MSComm.PortOpen Then MSComm.PortOpen = False\u003Chr\u003E \u003Chr\u003E On Error GoTo ErrorHandler\u003Chr\u003E \u003Chr\u003E MSComm.CommPort = Combo_com.ListIndex + 1\u003Chr\u003E MSComm.InputMode = comInputModeBinary\u003Chr\u003E MSComm.InputLen = 0\u003Chr\u003E MSComm.RThreshold = 1\u003Chr\u003E MSComm.SThreshold = 0\u003Chr\u003E MSComm.PortOpen = True\u003Chr\u003E \u003Chr\u003E On Error GoTo ErrorHandler\u003Chr\u003E Command_BUTTON_Opencom.Caption = \"串口已打开\"\u003Chr\u003EExit Sub\u003Chr\u003E\u003Chr\u003EErrorHandler:\u003Chr\u003E MsgBox \"打开串口时出错\", vbOKOnly + vbExclamation, \"错误\"\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Command_BUTTON_OutA_Click()\u003Chr\u003E Dim count As Byte\u003Chr\u003E Dim position As Byte\u003Chr\u003E Dim send(12) As Byte '定义发送数组\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E Dim item(1) As Byte\u003Chr\u003E Dim stemp(3) As Byte\u003Chr\u003E Dim address As Integer\u003Chr\u003E Dim outpercent As Single\u003Chr\u003E \u003Chr\u003E Call WaitForScan\u003Chr\u003E \u003Chr\u003E For count = 0 To 6\u003Chr\u003E If Option_IOut(count).Value = True Then\u003Chr\u003E position = count\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E Next count '确定输出电流值\u003Chr\u003E \u003Chr\u003E Select Case position '计算输出百分比\u003Chr\u003E Case 0\u003Chr\u003E outpercent = -0.0125\u003Chr\u003E Case 1\u003Chr\u003E outpercent = 0#\u003Chr\u003E Case 2\u003Chr\u003E outpercent = 25#\u003Chr\u003E Case 3\u003Chr\u003E outpercent = 50#\u003Chr\u003E Case 4\u003Chr\u003E outpercent = 75#\u003Chr\u003E Case 5\u003Chr\u003E outpercent = 100#\u003Chr\u003E Case 6\u003Chr\u003E outpercent = 100.05\u003Chr\u003E Case Else\u003Chr\u003E outpercent = -0.0125\u003Chr\u003E End Select\u003Chr\u003E \u003Chr\u003E send(0) = CByte(Combo_Meter.Text)\u003Chr\u003E send(1) = &H10\u003Chr\u003E \u003Chr\u003E Call ITB(IOUT, item()) 'ITB将整形转换成2字节型\u003Chr\u003E \u003Chr\u003E send(2) = item(1)\u003Chr\u003E send(3) = item(0)\u003Chr\u003E \u003Chr\u003E send(4) = &H0\u003Chr\u003E send(5) = &H2\u003Chr\u003E send(6) = &H4\u003Chr\u003E \u003Chr\u003E Call STB(outpercent, stemp()) '写入标定压力值 '将浮点型转换成4字节型\u003Chr\u003E send(7) = stemp(0)\u003Chr\u003E send(8) = stemp(1)\u003Chr\u003E send(9) = stemp(2)\u003Chr\u003E send(10) = stemp(3)\u003Chr\u003E \u003Chr\u003E \u003Chr\u003E Call CRC16(send(), 10, crc())\u003Chr\u003E send(11) = crc(1)\u003Chr\u003E send(12) = crc(0)\u003Chr\u003E \u003Chr\u003E MSComm.Output = send\u003Chr\u003E TX_address = ADD\u003Chr\u003E Call StartScan\u003Chr\u003E \u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Command_Button_PR_Click()\u003Chr\u003E \u003Chr\u003E Label_RP1.Caption = \"AD采集值\"\u003Chr\u003E Label_RP2.Caption = \"标定点\"\u003Chr\u003E Label_RP3.Caption = \"\"\u003Chr\u003E Text_D03.Visible = False\u003Chr\u003E Text_D13.Visible = False\u003Chr\u003E Text_D23.Visible = False\u003Chr\u003E Text_D33.Visible = False\u003Chr\u003E Text_D43.Visible = False\u003Chr\u003E Text_D53.Visible = False\u003Chr\u003E Text_D63.Visible = False\u003Chr\u003E Text_D73.Visible = False\u003Chr\u003E Text_D83.Visible = False\u003Chr\u003E Text_D93.Visible = False\u003Chr\u003E Text_D103.Visible = False\u003Chr\u003E Text_D01.Visible = True\u003Chr\u003E Text_D02.Visible = True\u003Chr\u003E Command_BUTTON_TP(0).Visible = True\u003Chr\u003E \u003Chr\u003E Choose_TR_PR = 1 '当单击压力参数读取时,Choose_PR_TR=1 触发标志\u003Chr\u003E Timer_press_AD.Enabled = True\u003Chr\u003E \u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Command_BUTTON_READADD_Click() '采用公共地址读取仪表地址\u003Chr\u003E \u003Chr\u003E Dim count As Integer\u003Chr\u003E Dim send(7) As Byte '定义发送数组\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E Dim item(1) As Byte\u003Chr\u003E \u003Chr\u003E Call WaitForScan\u003Chr\u003E Text_RAdd.Text = 0\u003Chr\u003E \u003Chr\u003E send(0) = &HFF\u003Chr\u003E send(1) = &H3\u003Chr\u003E \u003Chr\u003E Call ITB(ADD, item())\u003Chr\u003E \u003Chr\u003E send(2) = item(1)\u003Chr\u003E send(3) = item(0)\u003Chr\u003E \u003Chr\u003E send(4) = &H0\u003Chr\u003E send(5) = &H1\u003Chr\u003E Call CRC16(send(), 5, crc())\u003Chr\u003E send(6) = crc(1)\u003Chr\u003E send(7) = crc(0)\u003Chr\u003E \u003Chr\u003E MSComm.Output = send\u003Chr\u003E TX_address = ADD\u003Chr\u003E Call StartScan\u003Chr\u003E \u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003E'芯片复位,本功能将清除芯片内所有数据\u003Chr\u003E\u003Chr\u003EPrivate Sub Command_BUTTON_RESET_Click()\u003Chr\u003E Dim count As Integer\u003Chr\u003E Dim send(9) As Byte '定义发送数组\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E Dim item(1) As Byte\u003Chr\u003E Dim address As Integer\u003Chr\u003E \u003Chr\u003E Call WaitForScan\u003Chr\u003E \u003Chr\u003E If vbCancel = (MsgBox(\"本功能将使芯片置于初始状态,芯片内所有数据都将被清除,是否继续\", vbOKCancel + vbExclamation, \"提示\")) Then\u003Chr\u003E Exit Sub '询问是否继续清除\u003Chr\u003E End If\u003Chr\u003E \u003Chr\u003E send(0) = &HFF\u003Chr\u003E send(1) = &H10\u003Chr\u003E\u003Chr\u003E Call ITB(ULOCK, item())\u003Chr\u003E \u003Chr\u003E send(2) = item(1) '寄存器地址\u003Chr\u003E send(3) = item(0)\u003Chr\u003E \u003Chr\u003E send(4) = &H0 '寄存器数量\u003Chr\u003E send(5) = &H1\u003Chr\u003E send(6) = &H1 '字节数 本地址存储下位机地址 为单字节\u003Chr\u003E send(7) = &H0\u003Chr\u003E \u003Chr\u003E Call CRC16(send(), 7, crc())\u003Chr\u003E send(8) = crc(1)\u003Chr\u003E send(9) = crc(0)\u003Chr\u003E \u003Chr\u003E MSComm.Output = send\u003Chr\u003E TX_address = ULOCK\u003Chr\u003E \u003Chr\u003E Call StartScan\u003Chr\u003E \u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Command_BUTTON_Scan_Click()\u003Chr\u003E Call WaitForScan '停止其他扫描\u003Chr\u003E Timer_SCAN.Enabled = True '扫描仪表 顺序扫描地址\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Command_BUTTON_SETADD_Click() '采用公共地址设定仪表地址\u003Chr\u003E Dim count As Integer\u003Chr\u003E Dim send(9) As Byte '定义发送数组\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E Dim item(1) As Byte\u003Chr\u003E Dim address As Integer\u003Chr\u003E \u003Chr\u003E Call WaitForScan\u003Chr\u003E \u003Chr\u003E send(0) = &HFF\u003Chr\u003E send(1) = &H10\u003Chr\u003E\u003Chr\u003E Call ITB(ADD, item())\u003Chr\u003E \u003Chr\u003E send(2) = item(1) '寄存器地址\u003Chr\u003E send(3) = item(0)\u003Chr\u003E \u003Chr\u003E send(4) = &H0 '寄存器数量\u003Chr\u003E send(5) = &H1\u003Chr\u003E \u003Chr\u003E send(6) = &H1 '字节数 本地址存储下位机地址 为单字节\u003Chr\u003E \u003Chr\u003E send(7) = CByte(Text_RAdd.Text)\u003Chr\u003E \u003Chr\u003E Call CRC16(send(), 7, crc())\u003Chr\u003E send(8) = crc(1)\u003Chr\u003E send(9) = crc(0)\u003Chr\u003E \u003Chr\u003E MSComm.Output = send\u003Chr\u003E TX_address = ADD\u003Chr\u003E \u003Chr\u003E Call StartScan\u003Chr\u003E \u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Command_Button_TR_Click()\u003Chr\u003E\u003Chr\u003E Label_RP1.Caption = \"温度\"\u003Chr\u003E Label_RP2.Caption = \"零点\"\u003Chr\u003E Label_RP3.Caption = \"满程\"\u003Chr\u003E Text_D03.Visible = True\u003Chr\u003E Text_D13.Visible = True\u003Chr\u003E Text_D23.Visible = True\u003Chr\u003E Text_D33.Visible = True\u003Chr\u003E Text_D43.Visible = True\u003Chr\u003E Text_D53.Visible = True\u003Chr\u003E Text_D63.Visible = True\u003Chr\u003E Text_D73.Visible = True\u003Chr\u003E Text_D83.Visible = True\u003Chr\u003E Text_D93.Visible = True\u003Chr\u003E Text_D103.Visible = True\u003Chr\u003E Text_D01.Visible = False\u003Chr\u003E Text_D02.Visible = False\u003Chr\u003E Text_D03.Visible = False\u003Chr\u003E Command_BUTTON_TP(0).Visible = False\u003Chr\u003E \u003Chr\u003E Choose_TR_PR = 0 '当单击温度参数读取时,Choose_PR_TR=0 触发标志\u003Chr\u003E \u003Chr\u003E Timer_Temp_Read.Enabled = True\u003Chr\u003E \u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Command19_Click()\u003Chr\u003E Dim data(3) As Byte\u003Chr\u003E Dim temp As Long\u003Chr\u003E \u003Chr\u003E data(0) = &H25\u003Chr\u003E data(1) = &H52\u003Chr\u003E data(2) = &H9A\u003Chr\u003E data(3) = &H44\u003Chr\u003E \u003Chr\u003E temp = BTS(data())\u003Chr\u003E temp = 0\u003Chr\u003E \u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Form_Load()\u003Chr\u003E Dim count As Integer\u003Chr\u003E Dim str As String\u003Chr\u003E str = \"COM\"\u003Chr\u003E For count = 1 To 12 '添加串口\u003Chr\u003E Combo_com.AddItem str & count\u003Chr\u003E Next count\u003Chr\u003E \u003Chr\u003E scanaddP = 1 '置位扫描位置\u003Chr\u003E \u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub M_ALL_Click()\u003Chr\u003E SSTab.Tab = 0\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub M_DI_Click()\u003Chr\u003E SSTab.Tab = 1\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub M_DP_Click()\u003Chr\u003E SSTab.Tab = 2\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub M_DT_Click()\u003Chr\u003E SSTab.Tab = 3\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub M_Exit_Click()\u003Chr\u003E Unload Form_main\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub M_Online_Click()\u003Chr\u003E SSTab.Tab = 4\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub M_Parameter_Click()\u003Chr\u003E SSTab.Tab = 5\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub MSComm_OnComm() '串口数据接收函数\u003Chr\u003E\u003Chr\u003E Dim count As Long\u003Chr\u003E Dim counttemp As Long\u003Chr\u003E Dim tmpBuf() As Byte\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E \u003Chr\u003E Dim i As Integer\u003Chr\u003E \u003Chr\u003E Dim tmpData(1) As Byte '温度\u003Chr\u003E Dim tmpDataZ(3) As Byte '零点\u003Chr\u003E Dim tmpDataF(3) As Byte '满程\u003Chr\u003E \u003Chr\u003E Dim preAdData(3) As Byte 'AD采集值\u003Chr\u003E Dim preData(3) As Byte '标定点\u003Chr\u003E\u003Chr\u003E Sleep (50)\u003Chr\u003E \u003Chr\u003E If MSComm.CommEvent = comEvReceive Then '接收数据流处理\u003Chr\u003E Erase RxData '清空数组\u003Chr\u003E Erase TxData '清空数组\u003Chr\u003E tmpBuf = MSComm.Input\u003Chr\u003E counttemp = UBound(tmpBuf)\u003Chr\u003E For count = 0 To counttemp\u003Chr\u003E RxData(count) = tmpBuf(count)\u003Chr\u003E Next count\u003Chr\u003E \u003Chr\u003E '串口接收数据\u003Chr\u003E If RxData(1) = &H3 Then '03读寄存器命令处理\u003Chr\u003E Call CRC16(RxData(), RxData(2) + 2, crc())\u003Chr\u003E If (RxData(RxData(2) + 4) = crc(0)) And (RxData(RxData(2) + 3) = crc(1)) Then 'CRC校验成功\u003Chr\u003E Comerr = 1 '通讯正常 通过CRC校验判定写入是否成功\u003Chr\u003E \u003Chr\u003E '综合参数设置--读取地址\u003Chr\u003E If (TX_address = 40001) Or (TX_address = 0) Then '地址匹配成功\u003Chr\u003E For count = 0 To 30\u003Chr\u003E If (Online(count).address = 0) Or (Online(count).address = RxData(0)) Then '地址匹配 继续处理\u003Chr\u003E Dim st2(1) As Byte\u003Chr\u003E Dim st4(3) As Byte\u003Chr\u003E \u003Chr\u003E Online(count).address = RxData(0)\u003Chr\u003E \u003Chr\u003E st4(3) = RxData(3)\u003Chr\u003E st4(2) = RxData(4)\u003Chr\u003E st4(1) = RxData(5)\u003Chr\u003E st4(0) = RxData(6)\u003Chr\u003E Online(count).final = BTS(st4) '数据转换 赋值给在线仪表\u003Chr\u003E \u003Chr\u003E st4(3) = RxData(7)\u003Chr\u003E st4(2) = RxData(8)\u003Chr\u003E st4(1) = RxData(9)\u003Chr\u003E st4(0) = RxData(10)\u003Chr\u003E Online(count).temperature = BTS(st4) '数据转换 赋值给在线仪表\u003Chr\u003E \u003Chr\u003E st4(3) = RxData(11)\u003Chr\u003E st4(2) = RxData(12)\u003Chr\u003E st4(1) = RxData(13)\u003Chr\u003E st4(0) = RxData(14)\u003Chr\u003E Online(count).press_AD = BTL(st4) '数据转换 赋值给在线仪表\u003Chr\u003E \u003Chr\u003E st4(3) = RxData(15)\u003Chr\u003E st4(2) = RxData(16)\u003Chr\u003E st4(1) = RxData(17)\u003Chr\u003E st4(0) = RxData(18)\u003Chr\u003E Online(count).press = BTS(st4) '数据转换 赋值给在线仪表\u003Chr\u003E \u003Chr\u003E st4(3) = RxData(19)\u003Chr\u003E st4(2) = RxData(20)\u003Chr\u003E st4(1) = RxData(21)\u003Chr\u003E st4(0) = RxData(22)\u003Chr\u003E Online(count).temperature_AD = BTL(st4) '数据转换 赋值给在线仪表\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E Next count\u003Chr\u003E ElseIf (TX_address <= &H10FF) And (TX_address >= &H1000) Then\u003Chr\u003E If TX_address = ADD Then '单表读取及设定地址处理\u003Chr\u003E Text_RAdd.Text = RxData(3)\u003Chr\u003E Exit Sub\u003Chr\u003E End If\u003Chr\u003E \u003Chr\u003E For counttemp = 0 To 29 '选择当前操作地址\u003Chr\u003E If Online(counttemp).address = RxData(0) Then\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E Next counttemp\u003Chr\u003E \u003Chr\u003E Select Case Choose_TR_PR\u003Chr\u003E Case 0 '温度参数读取\u003Chr\u003E For count = 0 To (RxData(2) - 1) '将数据转存\u003Chr\u003E DemarcateT(counttemp).demarcate(TX_address - &H1000 + count) = RxData(3 + count)\u003Chr\u003E Next count\u003Chr\u003E \u003Chr\u003E For i = 0 To 9\u003Chr\u003E tmpData(1) = DemarcateT(counttemp).demarcate(i * 2)\u003Chr\u003E tmpData(0) = DemarcateT(counttemp).demarcate(i * 2 + 1)\u003Chr\u003E \u003Chr\u003E tmpDataZ(0) = DemarcateT(counttemp).demarcate(i * 4 + 20)\u003Chr\u003E tmpDataZ(1) = DemarcateT(counttemp).demarcate(i * 4 + 21)\u003Chr\u003E tmpDataZ(2) = DemarcateT(counttemp).demarcate(i * 4 + 22)\u003Chr\u003E tmpDataZ(3) = DemarcateT(counttemp).demarcate(i * 4 + 23)\u003Chr\u003E \u003Chr\u003E tmpDataF(0) = DemarcateT(counttemp).demarcate(i * 4 + 60)\u003Chr\u003E tmpDataF(1) = DemarcateT(counttemp).demarcate(i * 4 + 61)\u003Chr\u003E tmpDataF(2) = DemarcateT(counttemp).demarcate(i * 4 + 62)\u003Chr\u003E tmpDataF(3) = DemarcateT(counttemp).demarcate(i * 4 + 63)\u003Chr\u003E \u003Chr\u003E DemarcateT(counttemp).temperature(i) = BTI(tmpData())\u003Chr\u003E DemarcateT(counttemp).zero(i) = BTS(tmpDataZ())\u003Chr\u003E DemarcateT(counttemp).full(i) = BTS(tmpDataF())\u003Chr\u003E Next i\u003Chr\u003E \u003Chr\u003E Text_D11.Text = DemarcateT(counttemp).temperature(0) \u002F 10 '溫度\u003Chr\u003E Text_D21.Text = DemarcateT(counttemp).temperature(1) \u002F 10\u003Chr\u003E Text_D31.Text = DemarcateT(counttemp).temperature(2) \u002F 10\u003Chr\u003E Text_D41.Text = DemarcateT(counttemp).temperature(3) \u002F 10\u003Chr\u003E Text_D51.Text = DemarcateT(counttemp).temperature(4) \u002F 10\u003Chr\u003E Text_D61.Text = DemarcateT(counttemp).temperature(5) \u002F 10\u003Chr\u003E Text_D71.Text = DemarcateT(counttemp).temperature(6) \u002F 10\u003Chr\u003E Text_D81.Text = DemarcateT(counttemp).temperature(7) \u002F 10\u003Chr\u003E Text_D91.Text = DemarcateT(counttemp).temperature(8) \u002F 10\u003Chr\u003E Text_D101.Text = DemarcateT(counttemp).temperature(9) \u002F 10\u003Chr\u003E \u003Chr\u003E Text_D12.Text = Format(DemarcateT(counttemp).zero(0), \"##0.00000\") '零點\u003Chr\u003E Text_D22.Text = Format(DemarcateT(counttemp).zero(1), \"##0.00000\")\u003Chr\u003E Text_D32.Text = Format(DemarcateT(counttemp).zero(2), \"##0.00000\")\u003Chr\u003E Text_D42.Text = Format(DemarcateT(counttemp).zero(3), \"##0.00000\")\u003Chr\u003E Text_D52.Text = Format(DemarcateT(counttemp).zero(4), \"##0.00000\")\u003Chr\u003E Text_D62.Text = Format(DemarcateT(counttemp).zero(5), \"##0.00000\")\u003Chr\u003E Text_D72.Text = Format(DemarcateT(counttemp).zero(6), \"##0.00000\")\u003Chr\u003E Text_D82.Text = Format(DemarcateT(counttemp).zero(7), \"##0.00000\")\u003Chr\u003E Text_D92.Text = Format(DemarcateT(counttemp).zero(8), \"##0.00000\")\u003Chr\u003E Text_D102.Text = Format(DemarcateT(counttemp).zero(9), \"##0.00000\")\u003Chr\u003E \u003Chr\u003E Text_D13.Text = Format(DemarcateT(counttemp).full(0), \"##0.00000\") '滿程\u003Chr\u003E Text_D23.Text = Format(DemarcateT(counttemp).full(1), \"##0.00000\")\u003Chr\u003E Text_D33.Text = Format(DemarcateT(counttemp).full(2), \"##0.00000\")\u003Chr\u003E Text_D43.Text = Format(DemarcateT(counttemp).full(3), \"##0.00000\")\u003Chr\u003E Text_D53.Text = Format(DemarcateT(counttemp).full(4), \"##0.00000\")\u003Chr\u003E Text_D63.Text = Format(DemarcateT(counttemp).full(5), \"##0.00000\")\u003Chr\u003E Text_D73.Text = Format(DemarcateT(counttemp).full(6), \"##0.00000\")\u003Chr\u003E Text_D83.Text = Format(DemarcateT(counttemp).full(7), \"##0.00000\")\u003Chr\u003E Text_D93.Text = Format(DemarcateT(counttemp).full(8), \"##0.00000\")\u003Chr\u003E Text_D103.Text = Format(DemarcateT(counttemp).full(9), \"##0.00000\")\u003Chr\u003E Case 1 '压力参数读取\u003Chr\u003E For count = 0 To (RxData(2) - 1) '将数据转存\u003Chr\u003E DemarcateP(counttemp).demarcate(TX_address - &H1080 + count) = RxData(3 + count)\u003Chr\u003E Next count\u003Chr\u003E \u003Chr\u003E For i = 0 To 10\u003Chr\u003E preAdData(0) = DemarcateP(counttemp).demarcate(i * 4)\u003Chr\u003E preAdData(1) = DemarcateP(counttemp).demarcate(i * 4 + 1)\u003Chr\u003E preAdData(2) = DemarcateP(counttemp).demarcate(i * 4 + 2)\u003Chr\u003E preAdData(3) = DemarcateP(counttemp).demarcate(i * 4 + 3)\u003Chr\u003E \u003Chr\u003E preData(0) = DemarcateP(counttemp).demarcate(i * 4 + 44)\u003Chr\u003E preData(1) = DemarcateP(counttemp).demarcate(i * 4 + 45)\u003Chr\u003E preData(2) = DemarcateP(counttemp).demarcate(i * 4 + 46)\u003Chr\u003E preData(3) = DemarcateP(counttemp).demarcate(i * 4 + 47)\u003Chr\u003E \u003Chr\u003E DemarcateP(counttemp).voltage(i) = BTL(preAdData())\u003Chr\u003E DemarcateP(counttemp).offset(i) = BTS(preData())\u003Chr\u003E Next i\u003Chr\u003E \u003Chr\u003E Text_D01.Text = DemarcateP(counttemp).voltage(0) 'AD采集值\u003Chr\u003E Text_D11.Text = DemarcateP(counttemp).voltage(1)\u003Chr\u003E Text_D21.Text = DemarcateP(counttemp).voltage(2)\u003Chr\u003E Text_D31.Text = DemarcateP(counttemp).voltage(3)\u003Chr\u003E Text_D41.Text = DemarcateP(counttemp).voltage(4)\u003Chr\u003E Text_D51.Text = DemarcateP(counttemp).voltage(5)\u003Chr\u003E Text_D61.Text = DemarcateP(counttemp).voltage(6)\u003Chr\u003E Text_D71.Text = DemarcateP(counttemp).voltage(7)\u003Chr\u003E Text_D81.Text = DemarcateP(counttemp).voltage(8)\u003Chr\u003E Text_D91.Text = DemarcateP(counttemp).voltage(9)\u003Chr\u003E Text_D101.Text = DemarcateP(counttemp).voltage(10)\u003Chr\u003E \u003Chr\u003E Text_D02.Text = Format(DemarcateP(counttemp).offset(0), \"##0.00000\") '标定点\u003Chr\u003E Text_D12.Text = Format(DemarcateP(counttemp).offset(1), \"##0.00000\")\u003Chr\u003E Text_D22.Text = Format(DemarcateP(counttemp).offset(2), \"##0.00000\")\u003Chr\u003E Text_D32.Text = Format(DemarcateP(counttemp).offset(3), \"##0.00000\")\u003Chr\u003E Text_D42.Text = Format(DemarcateP(counttemp).offset(4), \"##0.00000\")\u003Chr\u003E Text_D52.Text = Format(DemarcateP(counttemp).offset(5), \"##0.00000\")\u003Chr\u003E Text_D62.Text = Format(DemarcateP(counttemp).offset(6), \"##0.00000\")\u003Chr\u003E Text_D72.Text = Format(DemarcateP(counttemp).offset(7), \"##0.00000\")\u003Chr\u003E Text_D82.Text = Format(DemarcateP(counttemp).offset(8), \"##0.00000\")\u003Chr\u003E Text_D92.Text = Format(DemarcateP(counttemp).offset(9), \"##0.00000\")\u003Chr\u003E Text_D102.Text = Format(DemarcateP(counttemp).offset(10), \"##0.00000\")\u003Chr\u003E End Select\u003Chr\u003E End If\u003Chr\u003E End If\u003Chr\u003E End If\u003Chr\u003E \u003Chr\u003E If RxData(1) = &H10 Then '10写命令\u003Chr\u003E Call CRC16(RxData(), 5, crc()) 'CRC校验\u003Chr\u003E If RxData(6) = crc(1) And RxData(7) = crc(0) Then '校验成功\u003Chr\u003E Comerr = 1 '通讯正常\u003Chr\u003E End If\u003Chr\u003E End If\u003Chr\u003E End If\u003Chr\u003E\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Online_Click()\u003Chr\u003E SSTab.Tab = 4\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Option_0_06_Click()\u003Chr\u003E Text_D0.Text = Format(0, \"##0.0\")\u003Chr\u003E Text_D1.Text = Format(0.1, \"##0.0\")\u003Chr\u003E Text_D2.Text = Format(0.2, \"##0.0\")\u003Chr\u003E Text_D3.Text = Format(0.3, \"##0.0\")\u003Chr\u003E Text_D4.Text = Format(0.4, \"##0.0\")\u003Chr\u003E Text_D5.Text = Format(0.5, \"##0.0\")\u003Chr\u003E Text_D6.Text = Format(0.6, \"##0.0\")\u003Chr\u003E Text_D7.Text = Format(0, \"##0.0\")\u003Chr\u003E Text_D8.Text = Format(0, \"##0.0\")\u003Chr\u003E Text_D9.Text = Format(0, \"##0.0\")\u003Chr\u003E Text_D10.Text = Format(0, \"##0.0\")\u003Chr\u003E preAD = 0\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Option_0_10_Click()\u003Chr\u003E Text_D0.Text = Format(0, \"##0.0\")\u003Chr\u003E Text_D1.Text = Format(1, \"##0.0\")\u003Chr\u003E Text_D2.Text = Format(2, \"##0.0\")\u003Chr\u003E Text_D3.Text = Format(3, \"##0.0\")\u003Chr\u003E Text_D4.Text = Format(4, \"##0.0\")\u003Chr\u003E Text_D5.Text = Format(5, \"##0.0\")\u003Chr\u003E Text_D6.Text = Format(6, \"##0.0\")\u003Chr\u003E Text_D7.Text = Format(7, \"##0.0\")\u003Chr\u003E Text_D8.Text = Format(8, \"##0.0\")\u003Chr\u003E Text_D9.Text = Format(9, \"##0.0\")\u003Chr\u003E Text_D10.Text = Format(10, \"##0.0\")\u003Chr\u003E preAD = 1\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Option_0_100_Click()\u003Chr\u003E Text_D0.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D1.Text = Format(1#, \"##0.0\")\u003Chr\u003E Text_D2.Text = Format(2#, \"##0.0\")\u003Chr\u003E Text_D3.Text = Format(3#, \"##0.0\")\u003Chr\u003E Text_D4.Text = Format(4#, \"##0.0\")\u003Chr\u003E Text_D5.Text = Format(5#, \"##0.0\")\u003Chr\u003E Text_D6.Text = Format(6#, \"##0.0\")\u003Chr\u003E Text_D7.Text = Format(7#, \"##0.0\")\u003Chr\u003E Text_D8.Text = Format(8#, \"##0.0\")\u003Chr\u003E Text_D9.Text = Format(9#, \"##0.0\")\u003Chr\u003E Text_D10.Text = Format(10#, \"##0.0\")\u003Chr\u003E preAD = 2\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Option_0_1000_Click()\u003Chr\u003E Text_D0.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D1.Text = Format(10#, \"##0.0\")\u003Chr\u003E Text_D2.Text = Format(20#, \"##0.0\")\u003Chr\u003E Text_D3.Text = Format(30#, \"##0.0\")\u003Chr\u003E Text_D4.Text = Format(40#, \"##0.0\")\u003Chr\u003E Text_D5.Text = Format(50#, \"##0.0\")\u003Chr\u003E Text_D6.Text = Format(60#, \"##0.0\")\u003Chr\u003E Text_D7.Text = Format(70#, \"##0.0\")\u003Chr\u003E Text_D8.Text = Format(80#, \"##0.0\")\u003Chr\u003E Text_D9.Text = Format(90#, \"##0.0\")\u003Chr\u003E Text_D10.Text = Format(100#, \"##0.0\")\u003Chr\u003E preAD = 3\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Option_0_16_Click()\u003Chr\u003E Text_D0.Text = Format(0, \"##0.0\")\u003Chr\u003E Text_D1.Text = Format(0.2, \"##0.0\")\u003Chr\u003E Text_D2.Text = Format(0.4, \"##0.0\")\u003Chr\u003E Text_D3.Text = Format(0.6, \"##0.0\")\u003Chr\u003E Text_D4.Text = Format(0.8, \"##0.0\")\u003Chr\u003E Text_D5.Text = Format(1#, \"##0.0\")\u003Chr\u003E Text_D6.Text = Format(1.2, \"##0.0\")\u003Chr\u003E Text_D7.Text = Format(1.4, \"##0.0\")\u003Chr\u003E Text_D8.Text = Format(1.6, \"##0.0\")\u003Chr\u003E Text_D9.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D10.Text = Format(0#, \"##0.0\")\u003Chr\u003E preAD = 4\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Option_0_160_Click()\u003Chr\u003E Text_D0.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D1.Text = Format(2#, \"##0.0\")\u003Chr\u003E Text_D2.Text = Format(4#, \"##0.0\")\u003Chr\u003E Text_D3.Text = Format(6#, \"##0.0\")\u003Chr\u003E Text_D4.Text = Format(8#, \"##0.0\")\u003Chr\u003E Text_D5.Text = Format(10#, \"##0.0\")\u003Chr\u003E Text_D6.Text = Format(12#, \"##0.0\")\u003Chr\u003E Text_D7.Text = Format(14#, \"##0.0\")\u003Chr\u003E Text_D8.Text = Format(16#, \"##0.0\")\u003Chr\u003E Text_D9.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D10.Text = Format(0#, \"##0.0\")\u003Chr\u003E preAD = 5\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Option_0_25_Click()\u003Chr\u003E Text_D0.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D1.Text = Format(0.5, \"##0.0\")\u003Chr\u003E Text_D2.Text = Format(1#, \"##0.0\")\u003Chr\u003E Text_D3.Text = Format(1.5, \"##0.0\")\u003Chr\u003E Text_D4.Text = Format(2#, \"##0.0\")\u003Chr\u003E Text_D5.Text = Format(2.5, \"##0.0\")\u003Chr\u003E Text_D6.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D7.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D8.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D9.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D10.Text = Format(0#, \"##0.0\")\u003Chr\u003E preAD = 6\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Option_0_250_Click()\u003Chr\u003E Text_D0.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D1.Text = Format(5#, \"##0.0\")\u003Chr\u003E Text_D2.Text = Format(10#, \"##0.0\")\u003Chr\u003E Text_D3.Text = Format(15#, \"##0.0\")\u003Chr\u003E Text_D4.Text = Format(20#, \"##0.0\")\u003Chr\u003E Text_D5.Text = Format(25#, \"##0.0\")\u003Chr\u003E Text_D6.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D7.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D8.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D9.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D10.Text = Format(0#, \"##0.0\")\u003Chr\u003E preAD = 7\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Option_0_40_Click()\u003Chr\u003E Text_D0.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D1.Text = Format(0.5, \"##0.0\")\u003Chr\u003E Text_D2.Text = Format(1#, \"##0.0\")\u003Chr\u003E Text_D3.Text = Format(1.5, \"##0.0\")\u003Chr\u003E Text_D4.Text = Format(2#, \"##0.0\")\u003Chr\u003E Text_D5.Text = Format(2.5, \"##0.0\")\u003Chr\u003E Text_D6.Text = Format(3#, \"##0.0\")\u003Chr\u003E Text_D7.Text = Format(3.5, \"##0.0\")\u003Chr\u003E Text_D8.Text = Format(4#, \"##0.0\")\u003Chr\u003E Text_D9.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D10.Text = Format(0#, \"##0.0\")\u003Chr\u003E preAD = 8\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Option_0_400_Click()\u003Chr\u003E Text_D0.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D1.Text = Format(5#, \"##0.0\")\u003Chr\u003E Text_D2.Text = Format(10#, \"##0.0\")\u003Chr\u003E Text_D3.Text = Format(15#, \"##0.0\")\u003Chr\u003E Text_D4.Text = Format(20#, \"##0.0\")\u003Chr\u003E Text_D5.Text = Format(25#, \"##0.0\")\u003Chr\u003E Text_D6.Text = Format(30#, \"##0.0\")\u003Chr\u003E Text_D7.Text = Format(35#, \"##0.0\")\u003Chr\u003E Text_D8.Text = Format(40#, \"##0.0\")\u003Chr\u003E Text_D9.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D10.Text = Format(0#, \"##0.0\")\u003Chr\u003E preAD = 9\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Option_0_60_Click()\u003Chr\u003E Text_D0.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D1.Text = Format(1#, \"##0.0\")\u003Chr\u003E Text_D2.Text = Format(2#, \"##0.0\")\u003Chr\u003E Text_D3.Text = Format(3#, \"##0.0\")\u003Chr\u003E Text_D4.Text = Format(4#, \"##0.0\")\u003Chr\u003E Text_D5.Text = Format(5#, \"##0.0\")\u003Chr\u003E Text_D6.Text = Format(60#, \"##0.0\")\u003Chr\u003E Text_D7.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D8.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D9.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D10.Text = Format(0#, \"##0.0\")\u003Chr\u003E preAD = 10\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Option_0_600_Click()\u003Chr\u003E Text_D0.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D1.Text = Format(10#, \"##0.0\")\u003Chr\u003E Text_D2.Text = Format(20#, \"##0.0\")\u003Chr\u003E Text_D3.Text = Format(30#, \"##0.0\")\u003Chr\u003E Text_D4.Text = Format(40#, \"##0.0\")\u003Chr\u003E Text_D5.Text = Format(50#, \"##0.0\")\u003Chr\u003E Text_D6.Text = Format(60#, \"##0.0\")\u003Chr\u003E Text_D7.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D8.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D9.Text = Format(0#, \"##0.0\")\u003Chr\u003E Text_D10.Text = Format(0#, \"##0.0\")\u003Chr\u003E preAD = 11\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003E'压力仪表标定采用查询串口方式\u003Chr\u003E'每次发送命令等待50mS读取数据,通讯成功则继续,否则重新发送,两次以上错误则认为仪表离线,提示检查连接\u003Chr\u003E'按仪表循环标定,直至最后一个在线仪表写入完毕\u003Chr\u003E\u003Chr\u003EPrivate Sub demarkp(demarkp As Byte) '仪表压力标定\u003Chr\u003E \u003Chr\u003E Dim demark_A As Byte '轮寻标定位置\u003Chr\u003E Dim count As Integer\u003Chr\u003E Dim send(12) As Byte '定义发送数组\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E Dim itemp(1) As Byte '将整形转换成2字节型数组\u003Chr\u003E Dim ltemp(3) As Byte '将长整形转换成4字节数组\u003Chr\u003E Dim stemp(3) As Byte '将浮点型转换成4字节数组\u003Chr\u003E \u003Chr\u003E Call WaitForScan\u003Chr\u003E\u003Chr\u003E \u003Chr\u003E demark_A = 0 '置位轮寻标定位置\u003Chr\u003E \u003Chr\u003E For demark_A = 0 To 30\u003Chr\u003E If Online(demark_A).address <= 0 Or Online(demark_A).address >= 255 Then '地址超范围 则退出\u003Chr\u003E Call StartScan\u003Chr\u003E Exit Sub\u003Chr\u003E End If\u003Chr\u003E \u003Chr\u003E For count = 0 To 2\u003Chr\u003E \u003Chr\u003E send(0) = Online(demark_A).address '置位操作地址\u003Chr\u003E send(1) = &H10\u003Chr\u003E \u003Chr\u003E Call ITB(LB + 4 * demarkp, itemp()) '芯片地址\u003Chr\u003E send(2) = itemp(1)\u003Chr\u003E send(3) = itemp(0)\u003Chr\u003E \u003Chr\u003E send(4) = &H0 '寄存器数,字节数\u003Chr\u003E send(5) = &H2\u003Chr\u003E send(6) = &H4\u003Chr\u003E \u003Chr\u003E Select Case demarkp\u003Chr\u003E Case 0\u003Chr\u003E Call STB(CSng(Text_D0.Text), stemp()) '写入标定压力值\u003Chr\u003E Case 1\u003Chr\u003E Call STB(CSng(Text_D1.Text), stemp()) '写入标定压力值\u003Chr\u003E Case 2\u003Chr\u003E Call STB(CSng(Text_D2.Text), stemp()) '写入标定压力值\u003Chr\u003E Case 3\u003Chr\u003E Call STB(CSng(Text_D3.Text), stemp()) '写入标定压力值\u003Chr\u003E Case 4\u003Chr\u003E Call STB(CSng(Text_D4.Text), stemp()) '写入标定压力值\u003Chr\u003E Case 5\u003Chr\u003E Call STB(CSng(Text_D5.Text), stemp()) '写入标定压力值\u003Chr\u003E Case 6\u003Chr\u003E Call STB(CSng(Text_D6.Text), stemp()) '写入标定压力值\u003Chr\u003E Case 7\u003Chr\u003E Call STB(CSng(Text_D7.Text), stemp()) '写入标定压力值\u003Chr\u003E Case 8\u003Chr\u003E Call STB(CSng(Text_D8.Text), stemp()) '写入标定压力值\u003Chr\u003E Case 9\u003Chr\u003E Call STB(CSng(Text_D9.Text), stemp()) '写入标定压力值\u003Chr\u003E Case 10\u003Chr\u003E Call STB(CSng(Text_D10.Text), stemp()) '写入标定压力值\u003Chr\u003E End Select\u003Chr\u003E \u003Chr\u003E send(7) = stemp(0)\u003Chr\u003E send(8) = stemp(1)\u003Chr\u003E send(9) = stemp(2)\u003Chr\u003E send(10) = stemp(3)\u003Chr\u003E \u003Chr\u003E \u003Chr\u003E Call CRC16(send(), 10, crc())\u003Chr\u003E send(11) = crc(1)\u003Chr\u003E send(12) = crc(0)\u003Chr\u003E \u003Chr\u003E On Error GoTo ErrorHandler '串口操作错误捕捉\u003Chr\u003E MSComm.Output = send\u003Chr\u003E \u003Chr\u003E Sleep (sleeptime)\u003Chr\u003E Comerr = 10 '置位错误标志 如果通讯成功 则本位置被修改\u003Chr\u003E Call MSComm_OnComm '调用串口数据处理函数 查询是否有中断发生\u003Chr\u003E \u003Chr\u003E If Comerr = 10 And count = 2 Then '检测通讯错误 如果出错则退出操作\u003Chr\u003E Call StartScan\u003Chr\u003E MsgBox \"通讯出错,请检查连接\", vbOKOnly + vbExclamation, \"错误\"\u003Chr\u003E Exit Sub\u003Chr\u003E ElseIf Comerr = 1 Then '通讯成功 则退出循环\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E Next count\u003Chr\u003E \u003Chr\u003E For count = 0 To 2\u003Chr\u003E \u003Chr\u003E Call ITB(LBIN + 4 * demarkp, itemp()) '芯片地址\u003Chr\u003E send(2) = itemp(1)\u003Chr\u003E send(3) = itemp(0)\u003Chr\u003E \u003Chr\u003E send(4) = &H0 '寄存器数,字节数\u003Chr\u003E send(5) = &H2\u003Chr\u003E send(6) = &H4\u003Chr\u003E \u003Chr\u003E Call LTB(Online(demark_A).press_AD, ltemp()) '写入电压值\u003Chr\u003E send(7) = ltemp(0)\u003Chr\u003E send(8) = ltemp(1)\u003Chr\u003E send(9) = ltemp(2)\u003Chr\u003E send(10) = ltemp(3)\u003Chr\u003E \u003Chr\u003E Call CRC16(send(), 10, crc())\u003Chr\u003E send(11) = crc(1)\u003Chr\u003E send(12) = crc(0)\u003Chr\u003E \u003Chr\u003E On Error GoTo ErrorHandler '串口操作错误捕捉\u003Chr\u003E MSComm.Output = send\u003Chr\u003E \u003Chr\u003E Sleep (sleeptime)\u003Chr\u003E Comerr = 10 '置位错误标志 如果通讯成功 则本位置被修改\u003Chr\u003E Call MSComm_OnComm '调用串口数据处理函数 查询是否有中断发生\u003Chr\u003E \u003Chr\u003E If Comerr = 10 And count = 2 Then '检测通讯错误 如果出错则退出操作\u003Chr\u003E Call StartScan\u003Chr\u003E MsgBox \"通讯出错,请检查连接\", vbOKOnly + vbExclamation, \"错误\"\u003Chr\u003E Exit Sub\u003Chr\u003E ElseIf Comerr = 1 Then '通讯成功 则退出循环\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E Next count\u003Chr\u003E Next demark_A '仪表地址循环\u003Chr\u003E\u003Chr\u003E Call StartScan\u003Chr\u003EExit Sub\u003Chr\u003E\u003Chr\u003EErrorHandler: '串口错误\u003Chr\u003E Call StartScan\u003Chr\u003E MsgBox \"请打开串口\", vbOKOnly + vbExclamation, \"错误\"\u003Chr\u003E Comerr = 10 '置位错误状态\u003Chr\u003E \u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Parameter_Click()\u003Chr\u003E SSTab.Tab = 5\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003E\u003Chr\u003E\u003Chr\u003EPrivate Sub Timer_LISTRENOVATE_Timer() '刷新列表及更新仪表数据\u003Chr\u003E Dim count As Integer\u003Chr\u003E Dim itm As ListItem\u003Chr\u003E Dim send(7) As Byte '定义发送数组\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E\u003Chr\u003E ListView_Display.ListItems.Clear\u003Chr\u003E \u003Chr\u003E For count = 0 To 30 '更新仪表数据\u003Chr\u003E If Online(count).address <> 0 Then\u003Chr\u003E Set itm = ListView_Display.ListItems.ADD()\u003Chr\u003E itm.Text = Online(count).address\u003Chr\u003E itm.SubItems(1) = Format(Online(count).final, \"##0.00000\")\u003Chr\u003E itm.SubItems(2) = Format(Online(count).press, \"##0.00000\")\u003Chr\u003E itm.SubItems(3) = Format(Online(count).temperature, \"##0.00000\")\u003Chr\u003E itm.SubItems(4) = Online(count).press_AD\u003Chr\u003E Else\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E Next count\u003Chr\u003E\u003Chr\u003E If Online(scanaddP).address <> 0 Then\u003Chr\u003E \u003Chr\u003E send(0) = Online(scanaddP).address\u003Chr\u003E send(1) = &H3\u003Chr\u003E send(2) = &H0\u003Chr\u003E send(3) = &H0\u003Chr\u003E send(4) = &H0\u003Chr\u003E send(5) = &HA\u003Chr\u003E Call CRC16(send(), 5, crc())\u003Chr\u003E send(6) = crc(1)\u003Chr\u003E send(7) = crc(0)\u003Chr\u003E \u003Chr\u003E On Error GoTo ErrorHandler\u003Chr\u003E scanaddP = scanaddP + 1\u003Chr\u003E MSComm.Output = send\u003Chr\u003E TX_address = 0\u003Chr\u003E Else\u003Chr\u003E scanaddP = 0\u003Chr\u003E End If\u003Chr\u003E\u003Chr\u003EExit Sub\u003Chr\u003EErrorHandler:\u003Chr\u003E Call StartScan\u003Chr\u003E Timer_SCAN.Enabled = False\u003Chr\u003E MsgBox \"请打开串口\", vbOKOnly + vbExclamation, \"错误\"\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub Timer_SCAN_Timer() '每500ms中断一次 按地址一次扫描\u003Chr\u003E Dim count As Integer\u003Chr\u003E Dim send(7) As Byte '定义发送数组\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E \u003Chr\u003E If scanaddP < 31 Then\u003Chr\u003E send(0) = scanaddP\u003Chr\u003E scanaddP = scanaddP + 1\u003Chr\u003E If ProgressBar.Value < 300 Then\u003Chr\u003E ProgressBar.Value = ProgressBar.Value + 10\u003Chr\u003E End If\u003Chr\u003E Else\u003Chr\u003E scanaddP = 1 '将扫描到的地址填入地址栏\u003Chr\u003E For count = 0 To 30\u003Chr\u003E If Online(count).address <> 0 Then\u003Chr\u003E Combo_Meter.AddItem Online(count).address, count\u003Chr\u003E End If\u003Chr\u003E Next count\u003Chr\u003E ProgressBar.Value = 0\u003Chr\u003E Timer_SCAN.Enabled = False\u003Chr\u003E MsgBox \"扫描仪表结束\", vbOKOnly, \"提示\"\u003Chr\u003E Timer_LISTRENOVATE.Enabled = True\u003Chr\u003EExit Sub\u003Chr\u003E End If\u003Chr\u003E \u003Chr\u003E send(1) = &H3\u003Chr\u003E send(2) = &H0\u003Chr\u003E send(3) = &H0\u003Chr\u003E send(4) = &H0\u003Chr\u003E send(5) = &HA\u003Chr\u003E Call CRC16(send(), 5, crc())\u003Chr\u003E send(6) = crc(1)\u003Chr\u003E send(7) = crc(0)\u003Chr\u003E \u003Chr\u003E On Error GoTo ErrorHandler\u003Chr\u003E MSComm.Output = send\u003Chr\u003E TX_address = 0\u003Chr\u003EExit Sub\u003Chr\u003E\u003Chr\u003EErrorHandler:\u003Chr\u003E Call StartScan\u003Chr\u003E Timer_SCAN.Enabled = False\u003Chr\u003E MsgBox \"请打开串口\", vbOKOnly + vbExclamation, \"错误\"\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub WaitForScan()\u003Chr\u003E \u003Chr\u003E Dim clearInput() As Byte\u003Chr\u003E Timer_LISTRENOVATE.Enabled = False\u003Chr\u003E Sleep (sleeptime) '发送命令之前停止扫描\u003Chr\u003E Call MSComm_OnComm\u003Chr\u003E\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003EPrivate Sub StartScan()\u003Chr\u003E Sleep (sleeptime)\u003Chr\u003E Timer_LISTRENOVATE.Enabled = True\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003E'参数读取--单点修改\u003Chr\u003EPrivate Sub Command_BUTTON_TP_Click(Index As Integer)\u003Chr\u003E Dim count As Integer\u003Chr\u003E Select Case Choose_TR_PR\u003Chr\u003E Case 0\u003Chr\u003E For count = 0 To 2\u003Chr\u003E Call temp_ValueWrite(Index)\u003Chr\u003E Comerr = 10 '置位错误标志,如果通讯成功则本位置被修改\u003Chr\u003E Call MSComm_OnComm '调用串口数据处理函数,查询是否有中断发生\u003Chr\u003E If Comerr = 10 And count = 2 Then '检测通讯错误,如果出错则退出操作\u003Chr\u003E Exit Sub\u003Chr\u003E ElseIf Comerr = 1 Then '通讯成功,退出循环\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E Next count\u003Chr\u003E \u003Chr\u003E For count = 0 To 2\u003Chr\u003E Call tempZ_ValueWrite(Index)\u003Chr\u003E Comerr = 10 '置位错误标志,如果通讯成功则本位置被修改\u003Chr\u003E Call MSComm_OnComm '调用串口数据处理函数,查询是否有中断发生\u003Chr\u003E If Comerr = 10 And count = 2 Then '检测通讯错误,如果出错则退出操作\u003Chr\u003E Exit Sub\u003Chr\u003E ElseIf Comerr = 1 Then '通讯成功,退出循环\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E Next count\u003Chr\u003E \u003Chr\u003E For count = 0 To 2\u003Chr\u003E Call tempF_ValueWrite(Index)\u003Chr\u003E Comerr = 10 '置位错误标志,如果通讯成功则本位置被修改\u003Chr\u003E Call MSComm_OnComm '调用串口数据处理函数,查询是否有中断发生\u003Chr\u003E If Comerr = 10 And count = 2 Then '检测通讯错误,如果出错则退出操作\u003Chr\u003E Exit Sub\u003Chr\u003E ElseIf Comerr = 1 Then '通讯成功,退出循环\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E Next count\u003Chr\u003E \u003Chr\u003E Case 1\u003Chr\u003E For count = 0 To 2\u003Chr\u003E Call press_ADValueWrite(Index)\u003Chr\u003E Comerr = 10 '置位错误标志,如果通讯成功则本位置被修改\u003Chr\u003E Call MSComm_OnComm '调用串口数据处理函数,查询是否有中断发生\u003Chr\u003E If Comerr = 10 And count = 2 Then '检测通讯错误,如果出错则退出操作\u003Chr\u003E Exit Sub\u003Chr\u003E ElseIf Comerr = 1 Then '通讯成功,退出循环\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E Next count\u003Chr\u003E \u003Chr\u003E For count = 0 To 2\u003Chr\u003E Call press_SpotWrite(Index)\u003Chr\u003E Comerr = 10 '置位错误标志,如果通讯成功则本位置被修改\u003Chr\u003E Call MSComm_OnComm '调用串口数据处理函数,查询是否有中断发生\u003Chr\u003E If Comerr = 10 And count = 2 Then '检测通讯错误,如果出错则退出操作\u003Chr\u003E Exit Sub\u003Chr\u003E ElseIf Comerr = 1 Then '通讯成功,退出循环\u003Chr\u003E Exit For\u003Chr\u003E End If\u003Chr\u003E Next count\u003Chr\u003E\u003Chr\u003E End Select\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003E'参数读取--压力参数读取--读出\u003Chr\u003EPrivate Sub Timer_press_AD_Timer()\u003Chr\u003E Dim send(7) As Byte\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E Dim itemp(1) As Byte\u003Chr\u003E \u003Chr\u003E Call WaitForScan\u003Chr\u003E\u003Chr\u003E send(0) = CByte(Val(Combo_Meter.Text)) '在线仪表首地址\u003Chr\u003E \u003Chr\u003E If pre < 11 Then\u003Chr\u003E \u003Chr\u003E TX_address = &H1080 + pre * 10\u003Chr\u003E send(1) = &H3 '03读寄存器命令\u003Chr\u003E \u003Chr\u003E Call ITB(LBIN, itemp()) '压力AD采集值 地址\u003Chr\u003E send(2) = itemp(1)\u003Chr\u003E send(3) = itemp(0) + pre * 10\u003Chr\u003E send(4) = &H0\u003Chr\u003E send(5) = &HA '寄存器数\u003Chr\u003E Call CRC16(send(), 5, crc()) 'CRC校验\u003Chr\u003E send(6) = crc(1)\u003Chr\u003E send(7) = crc(0)\u003Chr\u003E \u003Chr\u003E MSComm.Output = send\u003Chr\u003E \u003Chr\u003E Sleep 300\u003Chr\u003E \u003Chr\u003E pre = pre + 1\u003Chr\u003E \u003Chr\u003E Comerr = 10 '置位错误标志 如果通讯成功 则本位置被修改\u003Chr\u003E Call MSComm_OnComm '调用串口数据处理函数 查询是否有中断发生\u003Chr\u003E \u003Chr\u003E Else\u003Chr\u003E pre = 0\u003Chr\u003E Timer_press_AD.Enabled = False\u003Chr\u003E End If\u003Chr\u003E\u003Chr\u003E Call StartScan\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003E'参数读取--温度参数读取--读出\u003Chr\u003EPrivate Sub Timer_Temp_Read_timer()\u003Chr\u003E Dim send(7) As Byte\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E Dim itemp(1) As Byte\u003Chr\u003E \u003Chr\u003E Call WaitForScan\u003Chr\u003E \u003Chr\u003E send(0) = CByte(Val(Combo_Meter.Text))\u003Chr\u003E \u003Chr\u003E If tmp < 10 Then\u003Chr\u003E \u003Chr\u003E TX_address = &H1000 + tmp * 10\u003Chr\u003E send(1) = &H3 '03读寄存器命令\u003Chr\u003E \u003Chr\u003E Call ITB(TTEM, itemp())\u003Chr\u003E send(2) = itemp(1)\u003Chr\u003E send(3) = itemp(0) + tmp * 10\u003Chr\u003E send(4) = &H0\u003Chr\u003E send(5) = &HA '寄存器数\u003Chr\u003E \u003Chr\u003E Call CRC16(send(), 5, crc()) 'CRC校验\u003Chr\u003E send(6) = crc(1)\u003Chr\u003E send(7) = crc(0)\u003Chr\u003E \u003Chr\u003E MSComm.Output = send\u003Chr\u003E Sleep 300\u003Chr\u003E \u003Chr\u003E tmp = tmp + 1\u003Chr\u003E \u003Chr\u003E Comerr = 10 '置位错误标志 如果通讯成功 则本位置被修改\u003Chr\u003E Call MSComm_OnComm '调用串口数据处理函数 查询是否有中断发生\u003Chr\u003E ElseIf tmp > 9 Then\u003Chr\u003E tmp = 0\u003Chr\u003E Timer_Temp_Read.Enabled = False\u003Chr\u003E End If\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003E'参数读取--压力参数读取--AD采集值写入\u003Chr\u003EPrivate Sub press_ADValueWrite(Index As Integer)\u003Chr\u003E Dim send(12) As Byte\u003Chr\u003E Dim itemp(1) As Byte\u003Chr\u003E Dim stemp(3) As Byte\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E Dim count As Integer\u003Chr\u003E \u003Chr\u003E send(0) = CByte(Val(Combo_Meter.Text)) '在线仪表首地址\u003Chr\u003E send(1) = &H10 '10写寄存器命令\u003Chr\u003E \u003Chr\u003E Call ITB(LBIN + 4 * Index, itemp()) '地址,写压力\u003Chr\u003E send(2) = itemp(1)\u003Chr\u003E send(3) = itemp(0)\u003Chr\u003E \u003Chr\u003E send(4) = &H0\u003Chr\u003E send(5) = &H2 '寄存器数目\u003Chr\u003E send(6) = &H4 '字节数\u003Chr\u003E \u003Chr\u003E Select Case Index\u003Chr\u003E Case 0\u003Chr\u003E Call LTB(CSng(Text_D01.Text), stemp())\u003Chr\u003E Case 1\u003Chr\u003E Call LTB(CSng(Text_D11.Text), stemp())\u003Chr\u003E Case 2\u003Chr\u003E Call LTB(CSng(Text_D21.Text), stemp())\u003Chr\u003E Case 3\u003Chr\u003E Call LTB(CSng(Text_D31.Text), stemp())\u003Chr\u003E Case 4\u003Chr\u003E Call LTB(CSng(Text_D41.Text), stemp())\u003Chr\u003E Case 5\u003Chr\u003E Call LTB(CSng(Text_D51.Text), stemp())\u003Chr\u003E Case 6\u003Chr\u003E Call LTB(CSng(Text_D61.Text), stemp())\u003Chr\u003E Case 7\u003Chr\u003E Call LTB(CSng(Text_D71.Text), stemp())\u003Chr\u003E Case 8\u003Chr\u003E Call LTB(CSng(Text_D81.Text), stemp())\u003Chr\u003E Case 9\u003Chr\u003E Call LTB(CSng(Text_D91.Text), stemp())\u003Chr\u003E Case 10\u003Chr\u003E Call LTB(CSng(Text_D101.Text), stemp())\u003Chr\u003E End Select\u003Chr\u003E \u003Chr\u003E send(7) = stemp(0)\u003Chr\u003E send(8) = stemp(1)\u003Chr\u003E send(9) = stemp(2)\u003Chr\u003E send(10) = stemp(3)\u003Chr\u003E \u003Chr\u003E Call CRC16(send(), 10, crc()) 'CRC校验\u003Chr\u003E send(11) = crc(1)\u003Chr\u003E send(12) = crc(0)\u003Chr\u003E \u003Chr\u003E MSComm.Output = send\u003Chr\u003E Sleep 500\u003Chr\u003E\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003E'参数读取--压力参数读取--标定点写入\u003Chr\u003EPrivate Sub press_SpotWrite(Index As Integer)\u003Chr\u003E Dim send(12) As Byte\u003Chr\u003E Dim itemp(1) As Byte\u003Chr\u003E Dim stemp(3) As Byte\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E Dim count As Integer\u003Chr\u003E \u003Chr\u003E send(0) = CByte(Val(Combo_Meter.Text)) '在线仪表首地址\u003Chr\u003E send(1) = &H10 '10写寄存器命令\u003Chr\u003E \u003Chr\u003E Call ITB(LB + 4 * Index, itemp()) '地址,写压力\u003Chr\u003E send(2) = itemp(1)\u003Chr\u003E send(3) = itemp(0)\u003Chr\u003E \u003Chr\u003E send(4) = &H0\u003Chr\u003E send(5) = &H2 '寄存器数目\u003Chr\u003E send(6) = &H4 '字节数\u003Chr\u003E \u003Chr\u003E Select Case Index\u003Chr\u003E Case 0\u003Chr\u003E Call STB(CSng(Text_D02.Text), stemp())\u003Chr\u003E Case 1\u003Chr\u003E Call STB(CSng(Text_D12.Text), stemp())\u003Chr\u003E Case 2\u003Chr\u003E Call STB(CSng(Text_D22.Text), stemp())\u003Chr\u003E Case 3\u003Chr\u003E Call STB(CSng(Text_D32.Text), stemp())\u003Chr\u003E Case 4\u003Chr\u003E Call STB(CSng(Text_D42.Text), stemp())\u003Chr\u003E Case 5\u003Chr\u003E Call STB(CSng(Text_D52.Text), stemp())\u003Chr\u003E Case 6\u003Chr\u003E Call STB(CSng(Text_D62.Text), stemp())\u003Chr\u003E Case 7\u003Chr\u003E Call STB(CSng(Text_D72.Text), stemp())\u003Chr\u003E Case 8\u003Chr\u003E Call STB(CSng(Text_D82.Text), stemp())\u003Chr\u003E Case 9\u003Chr\u003E Call STB(CSng(Text_D92.Text), stemp())\u003Chr\u003E Case 10\u003Chr\u003E Call STB(CSng(Text_D102.Text), stemp())\u003Chr\u003E End Select\u003Chr\u003E \u003Chr\u003E send(7) = stemp(0)\u003Chr\u003E send(8) = stemp(1)\u003Chr\u003E send(9) = stemp(2)\u003Chr\u003E send(10) = stemp(3)\u003Chr\u003E \u003Chr\u003E Call CRC16(send(), 10, crc()) 'CRC校验\u003Chr\u003E send(11) = crc(1)\u003Chr\u003E send(12) = crc(0)\u003Chr\u003E \u003Chr\u003E MSComm.Output = send\u003Chr\u003E Sleep 500\u003Chr\u003E\u003Chr\u003E\u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003E'参数读取--温度参数读取--温度写入\u003Chr\u003EPrivate Sub temp_ValueWrite(Index As Integer)\u003Chr\u003E Dim send(10) As Byte\u003Chr\u003E Dim itemp(1) As Byte\u003Chr\u003E Dim stemp(1) As Byte\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E \u003Chr\u003E send(0) = CByte(Val(Combo_Meter.Text)) '在线仪表首地址\u003Chr\u003E send(1) = &H10 '10写寄存器命令\u003Chr\u003E \u003Chr\u003E Call ITB(TTEM + 2 * (Index - 1), itemp()) '地址,写温度\u003Chr\u003E send(2) = itemp(1)\u003Chr\u003E send(3) = itemp(0)\u003Chr\u003E \u003Chr\u003E send(4) = &H0\u003Chr\u003E send(5) = &H1 '寄存器数目\u003Chr\u003E send(6) = &H2 '字节数\u003Chr\u003E \u003Chr\u003E Select Case Index\u003Chr\u003E Case 1\u003Chr\u003E Call ITB(CSng(Text_D11.Text), stemp())\u003Chr\u003E Case 2\u003Chr\u003E Call ITB(CSng(Text_D21.Text), stemp())\u003Chr\u003E Case 3\u003Chr\u003E Call ITB(CSng(Text_D31.Text), stemp())\u003Chr\u003E Case 4\u003Chr\u003E Call ITB(CSng(Text_D41.Text), stemp())\u003Chr\u003E Case 5\u003Chr\u003E Call ITB(CSng(Text_D51.Text), stemp())\u003Chr\u003E Case 6\u003Chr\u003E Call ITB(CSng(Text_D61.Text), stemp())\u003Chr\u003E Case 7\u003Chr\u003E Call ITB(CSng(Text_D71.Text), stemp())\u003Chr\u003E Case 8\u003Chr\u003E Call ITB(CSng(Text_D81.Text), stemp())\u003Chr\u003E Case 9\u003Chr\u003E Call ITB(CSng(Text_D91.Text), stemp())\u003Chr\u003E Case 10\u003Chr\u003E Call ITB(CSng(Text_D101.Text), stemp())\u003Chr\u003E End Select\u003Chr\u003E \u003Chr\u003E send(7) = stemp(0)\u003Chr\u003E send(8) = stemp(1)\u003Chr\u003E \u003Chr\u003E Call CRC16(send(), 8, crc()) 'CRC校验\u003Chr\u003E send(9) = crc(1)\u003Chr\u003E send(10) = crc(0)\u003Chr\u003E \u003Chr\u003E MSComm.Output = send\u003Chr\u003E Sleep 500\u003Chr\u003E \u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003E'参数读取--温度参数读取--零点写入\u003Chr\u003EPrivate Sub tempZ_ValueWrite(Index As Integer)\u003Chr\u003E Dim send(12) As Byte\u003Chr\u003E Dim itemp(1) As Byte\u003Chr\u003E Dim stemp(3) As Byte\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E \u003Chr\u003E send(0) = CByte(Val(Combo_Meter.Text)) '在线仪表首地址\u003Chr\u003E send(1) = &H10 '10写寄存器命令\u003Chr\u003E \u003Chr\u003E Call ITB(TZ + 4 * (Index - 1), itemp()) '地址,写温度\u003Chr\u003E send(2) = itemp(1)\u003Chr\u003E send(3) = itemp(0)\u003Chr\u003E \u003Chr\u003E send(4) = &H0\u003Chr\u003E send(5) = &H1 '寄存器数目\u003Chr\u003E send(6) = &H2 '字节数\u003Chr\u003E \u003Chr\u003E Select Case Index\u003Chr\u003E Case 1\u003Chr\u003E Call STB(CSng(Text_D12.Text), stemp())\u003Chr\u003E Case 2\u003Chr\u003E Call STB(CSng(Text_D22.Text), stemp())\u003Chr\u003E Case 3\u003Chr\u003E Call STB(CSng(Text_D32.Text), stemp())\u003Chr\u003E Case 4\u003Chr\u003E Call STB(CSng(Text_D42.Text), stemp())\u003Chr\u003E Case 5\u003Chr\u003E Call STB(CSng(Text_D52.Text), stemp())\u003Chr\u003E Case 6\u003Chr\u003E Call STB(CSng(Text_D62.Text), stemp())\u003Chr\u003E Case 7\u003Chr\u003E Call STB(CSng(Text_D72.Text), stemp())\u003Chr\u003E Case 8\u003Chr\u003E Call STB(CSng(Text_D82.Text), stemp())\u003Chr\u003E Case 9\u003Chr\u003E Call STB(CSng(Text_D92.Text), stemp())\u003Chr\u003E Case 10\u003Chr\u003E Call STB(CSng(Text_D102.Text), stemp())\u003Chr\u003E End Select\u003Chr\u003E \u003Chr\u003E send(7) = stemp(0)\u003Chr\u003E send(8) = stemp(1)\u003Chr\u003E send(9) = stemp(2)\u003Chr\u003E send(10) = stemp(3)\u003Chr\u003E \u003Chr\u003E Call CRC16(send(), 10, crc()) 'CRC校验\u003Chr\u003E send(11) = crc(1)\u003Chr\u003E send(12) = crc(0)\u003Chr\u003E \u003Chr\u003E MSComm.Output = send\u003Chr\u003E Sleep 500\u003Chr\u003E \u003Chr\u003EEnd Sub\u003Chr\u003E\u003Chr\u003E'参数读取--温度参数读取--满程写入\u003Chr\u003EPrivate Sub tempF_ValueWrite(Index As Integer)\u003Chr\u003E Dim send(12) As Byte\u003Chr\u003E Dim itemp(1) As Byte\u003Chr\u003E Dim stemp(3) As Byte\u003Chr\u003E Dim crc(1) As Byte\u003Chr\u003E \u003Chr\u003E send(0) = CByte(Val(Combo_Meter.Text)) '在线仪表首地址\u003Chr\u003E send(1) = &H10 '10写寄存器命令\u003Chr\u003E \u003Chr\u003E Call ITB(TF + 4 * (Index - 1), itemp()) '地址,写温度\u003Chr\u003E send(2)",readCount:b,keywords:t,createDate:"2022-08-15 13:00:00",tagId:f,typeId:a,typeLists:[{k:"842",v:"btl压力变送器"},{k:"4611",v:"3051dp2a差压变送器"},{k:"8614",v:"hd1电压变送器"}],seotitle:t},breadNavs:[{text:"锐单电子商城",disabled:u,href:o},{text:"电子资讯",disabled:u,href:"\u002Finfomation\u002F"},{text:"技术支持",href:"\u002Finfomation\u002F9",disabled:u},{text:"正文",disabled:K,href:v}],relations:[{id:289261,title:"动力学技术KTU1121 USB Type-C 端口保护器的介绍、特性、及应用",pictureUrl:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Faritcle\u002Fprogrammes\u002F20240321\u002Fthumbnail\u002F52ffd54e07174100a151b11dfd0f2966.png?Expires=2341742726&OSSAccessKeyId=LTAIHgntmVKZP6VP&Signature=hd7ZMmbwjCT6HOLk1zAsTFc7kCM%3D",introduction:"具有四个过电压保护(OVP)的USB Type-C CC和SBU信号传导路径。",content:a,readCount:b,keywords:a,createDate:"2025-05-14 12:07:10",tagId:f,typeId:a,typeLists:a},{id:289260,title:"Sensata PTE7300密封数字压力传感器的介绍、特性、及应用",pictureUrl:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Faritcle\u002Fprogrammes\u002F20240321\u002Fthumbnail\u002F9ce43dcd8a8b44239d5a7ec832595420.png?Expires=2341742719&OSSAccessKeyId=LTAIHgntmVKZP6VP&Signature=L0BjOQPvBIHnR5Yi72OhFS0t5kE%3D",introduction:"在中高压范围内提供高精度\u002F机械抗冲击和EMC保护。",content:a,readCount:b,keywords:a,createDate:"2025-05-14 11:37:10",tagId:f,typeId:a,typeLists:a},{id:289259,title:"PANJIT PBHV8110DA\u002FPBHV9110DA低Vce(sat)晶体管的介绍、特性、及应用",pictureUrl:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Faritcle\u002Fprogrammes\u002F20240321\u002Fthumbnail\u002Fd1b35985dcd1451bb66c2add226a17f3.png?Expires=2341742715&OSSAccessKeyId=LTAIHgntmVKZP6VP&Signature=B9Zlq7Vn7nGD3xQcKhP4LsEhgXs%3D",introduction:"低Vce(sat)晶体管是AEC-Q101合格的高集电极电流能力。",content:a,readCount:b,keywords:a,createDate:"2025-05-14 11:07:10",tagId:f,typeId:a,typeLists:a},{id:289258,title:"ams OSRAM OSLON 黑色平板X LED器件的介绍、特性、及应用",pictureUrl:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Faritcle\u002Fprogrammes\u002F20240321\u002Fthumbnail\u002Fbd3c920a109541a1bae164ffe7e9eb14.png?Expires=2341742712&OSSAccessKeyId=LTAIHgntmVKZP6VP&Signature=gFsKVxnJcuT6jIVMzWGkfz1Hq64%3D",introduction:"为标准前向照明应用提供高效率。",content:a,readCount:b,keywords:a,createDate:"2025-05-14 10:37:10",tagId:f,typeId:a,typeLists:a},{id:289255,title:"Cree LED CLQ6A三合一贴片LED的介绍、特性、及应用",pictureUrl:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Faritcle\u002Fprogrammes\u002F20240321\u002Fthumbnail\u002F8e52f473245748f5a9fc92c2e73f48b1.png?Expires=2341742093&OSSAccessKeyId=LTAIHgntmVKZP6VP&Signature=fFk6Oz3\u002F8RIwperXAj0kq4hRvXg%3D",introduction:"提供高性能和3色设计在标准的PLCC8包。",content:a,readCount:b,keywords:a,createDate:"2025-05-14 10:07:10",tagId:f,typeId:a,typeLists:a},{id:289254,title:"Cree LED CLQ6B 4-in-1 RGBW贴片LED的介绍、特性、及应用",pictureUrl:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Faritcle\u002Fprogrammes\u002F20240321\u002Fthumbnail\u002Fb617cc59097e49a4bca947d6c44a18cd.png?Expires=2341742090&OSSAccessKeyId=LTAIHgntmVKZP6VP&Signature=88h32JrdHcVk4lzD5Pv83ZgixnM%3D",introduction:"高性能4色SMT led被设计用于广泛的应用。",content:a,readCount:b,keywords:a,createDate:"2025-05-14 09:37:10",tagId:f,typeId:a,typeLists:a},{id:289252,title:"NDK NX1210AB表面贴装晶体的介绍、特性、及应用",pictureUrl:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Faritcle\u002Fprogrammes\u002F20240321\u002Fthumbnail\u002F2b450b94ce3045b0986f93e468d17d6c.png?Expires=2341741800&OSSAccessKeyId=LTAIHgntmVKZP6VP&Signature=TBVv76K8Gy\u002FHdRc%2B9DniofqeZQ4%3D",introduction:"用于近距离无线的薄(0.30毫米高)和紧凑(1.2毫米长x 1.0毫米宽)晶体。",content:a,readCount:b,keywords:a,createDate:"2025-05-14 09:07:09",tagId:f,typeId:a,typeLists:a},{id:289169,title:"伊顿ACE2V3225共模芯片电感器的介绍、特性、及应用",pictureUrl:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Faritcle\u002Fprogrammes\u002F20240321\u002Fthumbnail\u002F1820b9c6a0524ddf9139d9d4c15f5dc0.png?Expires=2341729111&OSSAccessKeyId=LTAIHgntmVKZP6VP&Signature=84iuuWbQlgqmPyrBr2foyTYyf34%3D",introduction:"AEC-Q200符合OPEN Alliance 2.0标准的汽车级芯片电感器。",content:a,readCount:b,keywords:a,createDate:"2025-05-14 08:37:09",tagId:f,typeId:a,typeLists:a},{id:289152,title:"意法半导体X040灵敏型栅可控硅和Z040可控硅的介绍、特性、及应用",pictureUrl:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Faritcle\u002Fprogrammes\u002F20240321\u002Fthumbnail\u002F350b9a929596403680cfdf2821cd9f4d.png?Expires=2341729070&OSSAccessKeyId=LTAIHgntmVKZP6VP&Signature=Sx\u002F9W2lu0hdA7v2MDFWN\u002FkORCCk%3D",introduction:"750V, 4A器件非常适合家用电器,电动工具和工业系统。",content:a,readCount:b,keywords:a,createDate:"2025-05-14 08:07:09",tagId:f,typeId:a,typeLists:a},{id:289151,title:"ABLIC S-82Y1B电池保护芯片的介绍、特性、及应用",pictureUrl:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Faritcle\u002Fprogrammes\u002F20240321\u002Fthumbnail\u002F5b3c89aae9be4be3aa20ccd6ffc8b380.png?Expires=2341729069&OSSAccessKeyId=LTAIHgntmVKZP6VP&Signature=TnZHjqgkNRBNumMjo4qyWhoX4tY%3D",introduction:"用于锂离子\u002F锂聚合物可充电电池的保护芯片。",content:a,readCount:b,keywords:a,createDate:"2025-05-14 07:37:09",tagId:f,typeId:a,typeLists:a},{id:289150,title:"Bel Power Solutions RDT-6Y系列6W DC-DC转换器的介绍、特性、及应用",pictureUrl:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Faritcle\u002Fprogrammes\u002F20240321\u002Fthumbnail\u002Fac0baf09ce6440e4bfe22907726d9a3f.png?Expires=2341729064&OSSAccessKeyId=LTAIHgntmVKZP6VP&Signature=8V3KzZoxQNHSguO\u002FPk%2B9INfh0Xg%3D",introduction:"输入电压范围从14VDC到160VDC, DIP-24封装,效率高达83%。",content:a,readCount:b,keywords:a,createDate:"2025-05-14 07:07:10",tagId:f,typeId:a,typeLists:a}],goodsRecommend:[{id:4482640,categoryId:c,categoryName:d,brandId:w,brandEnName:x,brandCnName:y,manufacturerNumber:"1.5KE91CA A0G",productNumber:"1.5KE91CAA0G-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482640.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:z,describe:"TVS DIODE 77.8V 125V DO201",segmentPriceList:a,unitPrice:A,stockCount:b,buyMinCount:p,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482642,categoryId:c,categoryName:d,brandId:i,brandEnName:j,brandCnName:k,manufacturerNumber:"SMBG64CA-M3\u002F52",productNumber:"SMBG64CA-M3\u002F52-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482642.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:B,describe:"TVS DIODE 64V 103V DO215AA",segmentPriceList:a,unitPrice:C,stockCount:b,buyMinCount:7500,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482643,categoryId:c,categoryName:d,brandId:L,brandEnName:M,brandCnName:N,manufacturerNumber:O,productNumber:"497-10799-1-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482643.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:P,describe:Q,segmentPriceList:a,unitPrice:7.8936,stockCount:R,buyMinCount:g,stockState:h,attributeExplainList:a,activeTitle:a},{id:4482644,categoryId:c,categoryName:d,brandId:D,brandEnName:E,brandCnName:F,manufacturerNumber:"A5KP6.0A-G",productNumber:"A5KP6.0A-G-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482644.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:"http:\u002F\u002Fwww.comchiptech.com\u002Fadmin\u002Ffiles\u002Fproduct\u002FA5KP-G%20Series%20RevB.pdf",describe:"TVS DIODE 6V 10.3V R-6",segmentPriceList:a,unitPrice:11.982142,stockCount:b,buyMinCount:250,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482645,categoryId:c,categoryName:d,brandId:l,brandEnName:m,brandCnName:n,manufacturerNumber:S,productNumber:"MF-USML300-2CT-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F506\u002F4482645.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:G,describe:T,segmentPriceList:a,unitPrice:7.5504,stockCount:U,buyMinCount:g,stockState:h,attributeExplainList:a,activeTitle:a},{id:4482647,categoryId:c,categoryName:d,brandId:H,brandEnName:I,brandCnName:J,manufacturerNumber:"15KP220A-TP",productNumber:"15KP220A-TPCT-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482647.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:V,describe:W,segmentPriceList:a,unitPrice:e,stockCount:b,buyMinCount:g,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482649,categoryId:c,categoryName:d,brandId:l,brandEnName:m,brandCnName:n,manufacturerNumber:X,productNumber:"5.0SMDJ8.0CA-HTR-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482649.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:Y,describe:Z,segmentPriceList:a,unitPrice:6.6066,stockCount:b,buyMinCount:p,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482650,categoryId:c,categoryName:d,brandId:q,brandEnName:r,brandCnName:s,manufacturerNumber:"MSMBG51CAE3",productNumber:"1086-7930-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482650.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:_,describe:"TVS DIODE 51V 82.4V DO215AA",segmentPriceList:a,unitPrice:$,stockCount:b,buyMinCount:aa,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482653,categoryId:c,categoryName:d,brandId:i,brandEnName:j,brandCnName:k,manufacturerNumber:"SM15T12CA-M3\u002F9AT",productNumber:"SM15T12CA-M3\u002F9AT-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482653.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:"https:\u002F\u002Fwww.vishay.com\u002Fdocs\u002F88380\u002Fsm15t.pdf",describe:"TVS DIODE 10.2V 16.7V DO214AB",segmentPriceList:a,unitPrice:2.243241,stockCount:b,buyMinCount:ab,stockState:h,attributeExplainList:a,activeTitle:a},{id:4482654,categoryId:c,categoryName:d,brandId:D,brandEnName:E,brandCnName:F,manufacturerNumber:ac,productNumber:"641-1641-1-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482654.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:ad,describe:ae,segmentPriceList:a,unitPrice:3.1746,stockCount:af,buyMinCount:g,stockState:h,attributeExplainList:a,activeTitle:a},{id:4482655,categoryId:c,categoryName:d,brandId:i,brandEnName:j,brandCnName:k,manufacturerNumber:"3KASMC28AHM3_B\u002FI",productNumber:"3KASMC28AHM3_B\u002FI-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482655.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:"http:\u002F\u002Fwww.vishay.com\u002Fdocs\u002F88480\u002F3kasmc.pdf",describe:"TVS DIODE 28V 45.4V DO214AB",segmentPriceList:a,unitPrice:4.539678,stockCount:b,buyMinCount:ab,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482657,categoryId:c,categoryName:d,brandId:ag,brandEnName:ah,brandCnName:ai,manufacturerNumber:aj,productNumber:"732-9751-1-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482657.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:ak,describe:al,segmentPriceList:a,unitPrice:e,stockCount:b,buyMinCount:g,stockState:h,attributeExplainList:a,activeTitle:a},{id:4482659,categoryId:c,categoryName:d,brandId:w,brandEnName:x,brandCnName:y,manufacturerNumber:"1.5KE100CA B0G",productNumber:"1.5KE100CAB0G-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482659.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:z,describe:"TVS DIODE 85.5V 137V DO201",segmentPriceList:a,unitPrice:A,stockCount:b,buyMinCount:p,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482660,categoryId:c,categoryName:d,brandId:q,brandEnName:r,brandCnName:s,manufacturerNumber:"MSMLJ130A",productNumber:"1086-8967-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482660.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:am,describe:an,segmentPriceList:a,unitPrice:ao,stockCount:b,buyMinCount:ap,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482662,categoryId:c,categoryName:d,brandId:L,brandEnName:M,brandCnName:N,manufacturerNumber:O,productNumber:"497-10799-6-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482662.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:P,describe:Q,segmentPriceList:a,unitPrice:e,stockCount:R,buyMinCount:g,stockState:h,attributeExplainList:a,activeTitle:a},{id:4482663,categoryId:c,categoryName:d,brandId:89,brandEnName:"DIODES",brandCnName:"美台",manufacturerNumber:"MMBZ20VALQ-7-F",productNumber:"MMBZ20VALQ-7-FDI-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482663.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:"https:\u002F\u002Fwww.diodes.com\u002Fassets\u002FDatasheets\u002FDs30306.pdf",describe:"TRANSIENT VOLTAGE SUPPRESSOR SOT",segmentPriceList:a,unitPrice:.595195,stockCount:b,buyMinCount:3000,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482664,categoryId:c,categoryName:d,brandId:l,brandEnName:m,brandCnName:n,manufacturerNumber:S,productNumber:"MF-USML300-2DKR-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F506\u002F4482664.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:G,describe:T,segmentPriceList:a,unitPrice:e,stockCount:U,buyMinCount:g,stockState:h,attributeExplainList:a,activeTitle:a},{id:4482665,categoryId:c,categoryName:d,brandId:H,brandEnName:I,brandCnName:J,manufacturerNumber:"15KP220CA-TP",productNumber:"15KP220CA-TPTR-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482665.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:V,describe:W,segmentPriceList:a,unitPrice:48.906,stockCount:b,buyMinCount:500,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482666,categoryId:c,categoryName:d,brandId:l,brandEnName:m,brandCnName:n,manufacturerNumber:X,productNumber:"5.0SMDJ8.0CA-HCT-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482666.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:Y,describe:Z,segmentPriceList:a,unitPrice:13.8996,stockCount:b,buyMinCount:g,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482667,categoryId:c,categoryName:d,brandId:91,brandEnName:"LITTELFUSE",brandCnName:"力特",manufacturerNumber:"5.0SMDJ60CA",productNumber:"F10858CT-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482667.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:"https:\u002F\u002Fwww.littelfuse.com\u002Fproducts\u002Ftvs-diodes\u002Fsurface-mount\u002F~\u002Fmedia\u002Felectronics\u002Fdatasheets\u002Ftvs_diodes\u002Flittelfuse_tvs_diode_5_0smdj_datasheet.pdf.pdf",describe:"TVS DIODE 60V 96.8V DO214AB",segmentPriceList:a,unitPrice:6.38,stockCount:"1433",buyMinCount:g,stockState:2,attributeExplainList:a,activeTitle:a},{id:4482669,categoryId:c,categoryName:d,brandId:i,brandEnName:j,brandCnName:k,manufacturerNumber:"SMBG7.0CA-M3\u002F52",productNumber:"SMBG7.0CA-M3\u002F52-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482669.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:B,describe:"TVS DIODE 7V 12V DO215AA",segmentPriceList:a,unitPrice:C,stockCount:b,buyMinCount:aq,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482670,categoryId:c,categoryName:d,brandId:D,brandEnName:E,brandCnName:F,manufacturerNumber:ac,productNumber:"641-1641-6-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482670.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:ad,describe:ae,segmentPriceList:a,unitPrice:e,stockCount:af,buyMinCount:g,stockState:h,attributeExplainList:a,activeTitle:a},{id:4482671,categoryId:c,categoryName:d,brandId:q,brandEnName:r,brandCnName:s,manufacturerNumber:"MSMBG54CA",productNumber:"1086-7933-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482671.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:_,describe:"TVS DIODE 54V 87.1V DO215AA",segmentPriceList:a,unitPrice:$,stockCount:b,buyMinCount:aa,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482673,categoryId:c,categoryName:d,brandId:H,brandEnName:I,brandCnName:J,manufacturerNumber:"SMAJ20CA-TP",productNumber:"SMAJ20CA-TPMSTR-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482673.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:"https:\u002F\u002Fwww.mccsemi.com\u002Fpdf\u002FProducts\u002FSMAJ5.0~SMAJ440CA(SMA).pdf",describe:"TVS DIODE 20V 32.4V DO214AC",segmentPriceList:a,unitPrice:.72072,stockCount:"90000",buyMinCount:ar,stockState:h,attributeExplainList:a,activeTitle:a},{id:4482674,categoryId:c,categoryName:d,brandId:ag,brandEnName:ah,brandCnName:ai,manufacturerNumber:aj,productNumber:"732-9751-6-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482674.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:ak,describe:al,segmentPriceList:a,unitPrice:e,stockCount:b,buyMinCount:g,stockState:h,attributeExplainList:a,activeTitle:a},{id:4482678,categoryId:c,categoryName:d,brandId:w,brandEnName:x,brandCnName:y,manufacturerNumber:"1.5KE51CA B0G",productNumber:"1.5KE51CAB0G-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482678.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:z,describe:"TVS DIODE 43.6V 70.1V DO201",segmentPriceList:a,unitPrice:A,stockCount:b,buyMinCount:p,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482680,categoryId:c,categoryName:d,brandId:q,brandEnName:r,brandCnName:s,manufacturerNumber:"MSMLJ130AE3",productNumber:"1086-8968-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482680.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:am,describe:an,segmentPriceList:a,unitPrice:ao,stockCount:b,buyMinCount:ap,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482681,categoryId:c,categoryName:d,brandId:l,brandEnName:m,brandCnName:n,manufacturerNumber:"MF-USML230-2",productNumber:"MF-USML230-2TR-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F506\u002F4482681.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:G,describe:"PTC RESET FUSE 6V 2.3A 1210",segmentPriceList:a,unitPrice:2.7885,stockCount:b,buyMinCount:ar,stockState:h,attributeExplainList:a,activeTitle:a},{id:4482683,categoryId:c,categoryName:d,brandId:i,brandEnName:j,brandCnName:k,manufacturerNumber:"5KP48AHE3\u002F73",productNumber:"5KP48AHE3\u002F73-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482683.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:"\u002F\u002Fmedia.digikey.com\u002Fpdf\u002FData%20Sheets\u002FVishay%20Semiconductors\u002F5KP5.0%20thru%205KP188A.pdf",describe:"TVS DIODE 48V 77.4V P600",segmentPriceList:a,unitPrice:14.4144,stockCount:b,buyMinCount:600,stockState:e,attributeExplainList:a,activeTitle:a},{id:4482686,categoryId:c,categoryName:d,brandId:i,brandEnName:j,brandCnName:k,manufacturerNumber:"SMBG7.5CA-M3\u002F52",productNumber:"SMBG7.5CA-M3\u002F52-ND",productLocalLogo:"https:\u002F\u002Fweb.ruidan.com\u002Fimages\u002Fproduct\u002F494\u002F507\u002F4482686.jpg?x-oss-process=image\u002Fauto-orient,1\u002Finterlace,1\u002Fresize,m_lfit,w_200\u002Fquality,q_90\u002Fformat,jpg",pdfUrl:B,describe:"TVS DIODE 7.5V 12.9V DO215AA",segmentPriceList:a,unitPrice:C,stockCount:b,buyMinCount:aq,stockState:e,attributeExplainList:a,activeTitle:a}]}],fetch:{},error:a,state:{loginTitle:v,user:{},forwardUrl:o,headersToken:v,cart:a,responseCollect:{}},serverRendered:K,routePath:"\u002Finfomation\u002Fdetail\u002F136258",config:{app:{basePath:o,assetsPath:o,cdnURL:"https:\u002F\u002Fcdn.ruidan.com\u002F_h5nuxt\u002F"}}}}(null,"0",494,"电路保护",0,9,1,8,408,"VISHAY","威世",87,"BOURNS","伯恩氏","\u002F",1500,146,"MICROSEMI","美高森美","变送器软件",false,"",243,"Taiwan Semiconductor","台湾集成电路制造","https:\u002F\u002Fwww.taiwansemi.com\u002Fproducts\u002Fdatasheet\u002F1.5KE%20SERIES_N1602.pdf",3.316256,"http:\u002F\u002Fwww.vishay.com\u002Fdocs\u002F89421\u002Fsmbg.pdf",2.54826,402,"COMCHIP","台湾典琦科技股份","https:\u002F\u002Fwww.bourns.com\u002Fdocs\u002Fproduct-datasheets\u002Fmfusml.pdf",406,"MCC","美微科",true,61,"ST","意法半导体","SM6T30AY","http:\u002F\u002Fwww.st.com\u002Fcontent\u002Fccc\u002Fresource\u002Ftechnical\u002Fdocument\u002Fdatasheet\u002F7c\u002F00\u002F1c\u002F38\u002Fa4\u002Fc1\u002F4b\u002Fae\u002FCD00279657.pdf\u002Ffiles\u002FCD00279657.pdf\u002Fjcr:content\u002Ftranslations\u002Fen.CD00279657.pdf","TVS DIODE 25.6V 53.5V SMB","481","MF-USML300-2","PTC RESET FUSE 6V 3A 1210","4284","https:\u002F\u002Fwww.mccsemi.com\u002Fpdf\u002FProducts\u002F15KP%20Series.pdf","TVS DIODE 220V 356V R-6","5.0SMDJ8.0CA-H","https:\u002F\u002Fwww.bourns.com\u002Fdocs\u002Fproduct-datasheets\u002F5-0smdj.pdf","DIO TVS VWM 8.0V 5KW BIDIR SMC","https:\u002F\u002Fwww.microsemi.com\u002Fdocument-portal\u002Fdoc_download\u002F10560-msmb-datasheet",9.76833,800,3500,"ACPDUC5V0U-HF","http:\u002F\u002Fwww.comchiptech.com\u002Fadmin\u002Ffiles\u002Fproduct\u002FACPDUC5V0U-HF%20RevB836002.pdf","TVS DIODE 5V 12.5V 0603C\u002FSOD523F","1285",140,"WURTH","伍尔特","824521431","https:\u002F\u002Fkatalog.we-online.de\u002Fpbs\u002Fdatasheet\u002F824521431.pdf","TVS DIODE 43V 69.4V DO214AA","https:\u002F\u002Fwww.microsemi.com\u002Fdocument-portal\u002Fdoc_download\u002F10563-msml-datasheet","TVS DIODE 130V 209V DO214AB",18.9618,400,6000,5000));</script><script src="https://cdn.ruidan.com/_h5nuxt/a6a41dc.js" defer></script><script src="https://cdn.ruidan.com/_h5nuxt/fd6c9f2.js" defer></script><script src="https://cdn.ruidan.com/_h5nuxt/74e3813.js" defer></script><script src="https://cdn.ruidan.com/_h5nuxt/0470057.js" defer></script><script src="https://cdn.ruidan.com/_h5nuxt/915dfd0.js" defer></script><script src="https://cdn.ruidan.com/_h5nuxt/33dc4ae.js" defer></script><script src="https://cdn.ruidan.com/_h5nuxt/deeec8d.js" defer></script><script src="https://cdn.ruidan.com/_h5nuxt/010485a.js" defer></script> </body> </html>