产品中心
ECPP40-01
程序代码
在(通用)(声明)中定义程序所用变量:
Dim ab(4) As Byte '字节数据类型数组,用来存贮接收到的一组字节数据
Dim av As Variant '用来从接收缓冲区读取数据
Dim i As Integer
Dim j As Integer
Dim w As Integer '接收数据个数计数器
Dim b1 As Single
Dim b2 As Single
Dim WW As Single '十进制检测值
Dim TD(8) as Boolean '通道状态数组
Dim Wmax(8) As Single '大值数组
Dim Wmin(8) As Single '小值数组
在窗体中添加名为Command1的[开始]按钮和名为MSComm1的MSComm控件。
[开始]按钮的Click事件处理程序主要是对MSComm1控制的参数初始化设置,程序中大部分参数在设计时可在MSComm1控制的属性窗口中设置:
Private Sub Command1_Click() '开始按钮
With MSComm1
mPort=2 '使用COM2
.Setting="9600,N,8,1" '设置通信口参数
.InBufferSize=40 '设置MSComm1接收缓冲区为40字节
.OutBufferSize=2 '设置MSComm1发送缓冲区为2字节
.InputMode = comInputModeBinary '设置接收数据模式为二进制形式
.InputLen = 1 '设置Input 一次从接收缓冲读取字节数为1
.SThreshold = 1 '设置Output 一次从发送缓冲读取字节数为1
.InBufferCount = 0 '清除接收缓冲区
.OutBufferCount = 0 '清除发送缓冲区
For i=1 to 8
Wmax(i) = -99 '大值赋初值
Wmin(i) = 99 '小值赋初值
Next i
w = 0 '数据个数计数器清零
.RThreshold = 1 '设置接收一个字节产生OnComm事件
On Error Resume Next '改变错误处理的方式。
Err.Clear
If .PortOpen = False Then '判断通信口是否打开
.PortOpen = True '打开通信口
If Err Then '错误处理
MsgBox "串口通信无效"
Exit Sub
End If
End If
End With
End Sub
为了达到实时数据采集目的,实时数据采集处理程序采用MSComm事件驱动方式。MSComm1_OnComm 的事件处理程序只处理comEvReceive事件,首先判断帧数据的开始字节,关闭OnComm接收事件,然后接收数据字节,将压缩BCD进行还原转换,再接收符号字节,判断数据符号,判断数据大小值,后打开OnComm接收事件,等待下一次OnComm事件产生:
Private Sub MSComm1_OnComm()
With MSComm1
Select Case mEvent '判断MSComm1通讯事件
Case comEvReceive '收到Rthreshold个字节产生的接收事件
av = .Input '读取一个接收字节
ab(1) = av(0) '转换保存到字节数据类型数组
If ab(1) = 170 Then '判断是否为数据开始标志,0FAH=170
.RThreshold = 0 '关闭OnComm事件接收
W=W+1 '计数器加1
av = .Input '读取通道状态字节
ab(0) = av(0) '转换保存到字节数据类型数
For i = 1 To 8 '通道状态数组复位
TD(i) = False
Next i
cn = 2 '帧长度赋初值,一个开始字,一个状态字
If ab(0) >= 128 Then '判断第八通状态
TD(8) = True '第八道是真
ab(0) = ab(0) - 128 '第7位置零
cn = cn + 3 '帧长度加3个字节
End If
If ab(0) >= 64 Then '判断第七通状态
TD(7) = True '第七道是真
ab(0) = ab(0) - 64 '第6位置零
cn = cn + 3 '帧长度加3个字节
End If
If ab(0) >= 32 Then '判断第六通状态
TD(6) = True '第六道是真
ab(0) = ab(0) - 32 '第5位置零
cn = cn + 3 '帧长度加3个字节
End If
If ab(0) >= 16 Then '判断第五通状态
TD(5) = True '第五道是真
ab(0) = ab(0) - 16 '第4位置零
cn = cn + 3 '帧长度加3个字节
End If
If ab(0) >= 8 Then '判断第四通状态
TD(4) = True '第四道是真
ab(0) = ab(0) - 8 '第3位置零
cn = cn + 3 '帧长度加3个字节
End If
If ab(0) >= 4 Then '判断第三通状态
TD(3) = True '第三道是真
ab(0) = ab(0) - 4 '第2位置零
cn = cn + 3 '帧长度加3个字节
End If
If ab(0) >= 2 Then '判断第二通状态
TD(2) = True '第二道是真
ab(0) = ab(0) - 2 '第0位置零
cn = cn + 3 '帧长度加3个字节
End If
If ab(0) >= 1 Then '判断第一通状态
TD(1) = True '第一道是真
cn = cn + 3 '帧长度加3个字节
End If
For i = 1 To 8 '
If TD(i) = True Then
av = .Input '读取第一个数据字节(BCD码高位字节)
ab(2) = av(0) '转换保存到字节数据类型数组
av = .Input '读取第二个数据字节(BCD码低位字节)
ab(3) = av(0) '转换保存到字节数据类型数组
av = .Input '读取第三个接收字节(符号位字节)
ab(4) = av(0) '转换保存到字节数据类型数组
b1 = ab(2) - 6 * (ab(2) \ 16) '高位字节压缩BCD码转换为实数
b2 = ab(3) - 6 * (ab(3) \ 16) '低位字节压缩BCD码转换为实数
WW = b2 + b1 / 100 '数值组合,标定小数点
If ab(4) > 127 Then WW = -WW '判断数据符号位
Label1(i-1) = Format(WW,"0.00") '显示毫米单位数值,2位小数
If WW>Wmax(i) And WW<51 Then '判断大值,仪表在刚开始工作时有干扰,会传导一些乱码,位移传感器有参数偏差,大值一般都略大于50毫米,所以取51为极限大值,取-51为极限小值。
Wmax(i) = WW
Label2(i-1)=Format(Wmax(i),"0.00") '显示大值
End If
If WW < Wmin(i) And WW > -51 Then '判断小值
Wmin(i) = WW
Label3(i-1)=Format(Wmin(i),"0.00") '显示小值
End If
End If
Next i
.RThreshold = cn '打开MSComm1事件接收
Else
.RThreshold = 1
End If
Case Else
End Select
End With
End Sub
应用领域
医疗
使用产品
硬件:USB-6211 OEM
软件: VC
解决方案
新生儿是一个特殊的受试群体,他们不能主观的表达是否能听见声音,因此,对于新生儿进行听力筛查,采用客观,无损的检测方法。2000年6月,美国婴幼儿听力联合委员会(JCIH)发表声明:推荐采用耳声发射听力检测技术对新生儿进行听力筛查的技术。近年来各类人群听力损伤日趋严重。例如:听力下降的起始年龄快速下降,据报道与青少年每天长时间,高质量地欣赏MP3是引起听力损伤的原因,密闭的耳机声场的集中声能严重损伤青少年的听力。还有:高龄人群由于慢性病引起高频听觉失聪。清华大学是国内掌握耳声发射听力检测设备研制能力的科研单位,完成了技术向产品的转化。
NEW KOLLMORGEN SERVOSTAR SERVO STAR CD DRIVE CEO3560
KOLLMORGEN SEIDEL 6SM37M-6.000-G MOTOR
Kollmorgen ServoStar Drive SE06200-Y066 SE06200Y066
Kollmorgen B-204-A-22 GOLDLINE BRUSHLESS SERVO MOTOR
Inland-Kollmorgen Servo Motor TT-2950-1210-C Used
KOLLMORGEN IND BDS4A-106J-0001-204B2 USPP BDS4A106J0001
KOLLMORGEN SEIDEL 56WK-P240/80-B USPP 56WKP24080B
KOLLMORGEN IND HPAR-15840-601-4501B14 USPP HPAR15840601
KOLLMORGEN IND B-206-A-31 USPP B206A31
KOLLMORGEN IND ME9-205-B-A4-206 NSFP ME9205BA4206
KOLLMORGEN EB-404-D-91-B3-001 BRUSHLESS MOTOR NEW
KOLLMORGEN IND BCL-02820-A00 USPP BCL02820A00
KOLLMORGEN IND TPAR 3340-34 USPP TPAR334034
KOLLMORGEN IND MT1506B1-R1D2 USPP MT1506B1R1D2
KOLLMORGEN IND M-405-A-B1 USPP M405AB1
KOLLMORGEN IND BCL-02806-A01 NSPP BCL02806A01
KOLLMORGEN IND PSR4/5A-112 USPP PSR45A112
KOLLMORGEN IND PA0800 NSFP PA0800
Kollmorgen Industrial Drives BDS4-203H-9105-204A7
Kollmorgen MT302A1-M2C1
Kollmorgen MT502A1-F1B1 SERVO MOTOR GOLDLINE XT
KOLLMORGEN IND SR03000-2G102A USPP SR030002G102A
KOLLMORGEN IND SR03000-000000 USPP SR03000000000
KOLLMORGEN SEIDEL 6SM-27M-4.000-G USPP 6SM27M4000G