座椅测试RS232数据库VB界面源码.docx
《座椅测试RS232数据库VB界面源码.docx》由会员分享,可在线阅读,更多相关《座椅测试RS232数据库VB界面源码.docx(92页珍藏版)》请在冰豆网上搜索。
座椅测试RS232数据库VB界面源码
座椅测试软件:
RS232通讯,读写数据库,读写TXT文件,调用第三方控件
1软件主界面
软件引用
添加的部件:
添加NI公司部件库
主界面代码如下:
PrivateSubForm_Load()
DimsCmdAsString
DimjAsInteger
Setcndata=NewConnection
cndata.Open"Provider=microsoft.ace.oledb.12.0;DataSource="&CurDir&"\data.accdb;persistSecurityInfo=false;JetOLEDB:
databasePassword=kkqq"
DimrslingjianAsRecordset
Setrslingjian=NewRecordset
rslingjian.CursorLocation=adOpenStatic
sCmd="select*from[次数表]where标志like'"&1&"'"
rslingjian.OpensCmd,cndata,adOpenForwardOnly,adLockReadOnly,adCmdText
Module1.ceshicishu(0)=rslingjian!
[缸1测试次数]
Module1.ceshicishu
(1)=rslingjian!
[缸2测试次数]
Module1.ceshicishu
(2)=rslingjian!
[缸3测试次数]
Module1.ceshicishu(3)=rslingjian!
[缸4测试次数]
Module1.ceshicishu(4)=rslingjian!
[缸5测试次数]
Module1.ceshicishu(5)=rslingjian!
[缸6测试次数]
Module1.ceshicishu(6)=rslingjian!
[缸7测试次数]
Module1.ceshicishu(7)=rslingjian!
[缸8测试次数]
Module1.chongjisjcs=rslingjian!
[冲击实际次数]
rslingjian.Close
'Setrslingjian=NewRecordset
'rslingjian.CursorLocation=adOpenStatic
'sCmd="select*from[系数表]"
'rslingjian.OpensCmd,cndata,adOpenForwardOnly,adLockReadOnly,adCmdText
'IfNotrslingjian.BOFAndNotrslingjian.EOFThen
'rslingjian.MoveFirst
'EndIf
'Module1.lizhix(0)=rslingjian!
[力值1]'100kg1
'Module1.lizhix
(1)=rslingjian!
[力值2]'100kg2
'Module1.lizhix
(2)=rslingjian!
[力值3]'
'Module1.lizhix(3)=rslingjian!
[力值4]'
'Module1.lizhix(4)=rslingjian!
[力值5]'200kg1
'Module1.lizhix(5)=rslingjian!
[力值6]'200kg2
'Module1.lizhix(6)=rslingjian!
[力值7]'200kg3
'Module1.lizhix(7)=rslingjian!
[力值8]'200kg4
'Module1.lizhix(8)=rslingjian!
[力值9]'位移
'rslingjian.Close
Forj=0To4
Setrslingjian=NewRecordset
rslingjian.CursorLocation=adOpenStatic
'sCmd="select*from[系数表]"
sCmd="select*from[系数表1]where标志like'"&j+1&"'"
rslingjian.OpensCmd,cndata,adOpenForwardOnly,adLockReadOnly,adCmdText
'IfNotrslingjian.BOFAndNotrslingjian.EOFThen
'rslingjian.MoveFirst
'EndIf
Module1.lizhi1k(j)=rslingjian!
[力1k]'
Module1.lizhi2k(j)=rslingjian!
[力2k]'
Module1.lizhi3k(j)=rslingjian!
[力3k]'
Module1.lizhi4k(j)=rslingjian!
[力4k]'
Module1.lizhi5k(j)=rslingjian!
[力5k]'
Module1.lizhi6k(j)=rslingjian!
[力6k]'
Module1.lizhi7k(j)=rslingjian!
[力7k]'
Module1.lizhi8k(j)=rslingjian!
[力8k]'
Module1.lizhi1b(j)=rslingjian!
[力1b]'
Module1.lizhi2b(j)=rslingjian!
[力2b]'
Module1.lizhi3b(j)=rslingjian!
[力3b]'
Module1.lizhi4b(j)=rslingjian!
[力4b]'
Module1.lizhi5b(j)=rslingjian!
[力5b]'
Module1.lizhi6b(j)=rslingjian!
[力6b]'
Module1.lizhi7b(j)=rslingjian!
[力7b]'
Module1.lizhi8b(j)=rslingjian!
[力8b]'
Module1.lizhi1c(j)=rslingjian!
[力1c]'
Module1.lizhi2c(j)=rslingjian!
[力2c]'
Module1.lizhi3c(j)=rslingjian!
[力3c]'
Module1.lizhi4c(j)=rslingjian!
[力4c]'
Module1.lizhi5c(j)=rslingjian!
[力5c]'
Module1.lizhi6c(j)=rslingjian!
[力6c]'
Module1.lizhi7c(j)=rslingjian!
[力7c]'
Module1.lizhi8c(j)=rslingjian!
[力8c]'
rslingjian.Close
Nextj
''初始化力值系数
'frm.OPCItemValueToWrite(114).Text=Module1.lizhix(0)'DT100100kg1
'Callfrm.OPCItemWriteButton_Click(114)
'frm.OPCItemValueToWrite(115).Text=Module1.lizhix
(1)'DT102100kg2
'Callfrm.OPCItemWriteButton_Click(115)
'frm.OPCItemValueToWrite(116).Text=Module1.lizhix
(2)'DT104100kg3
'Callfrm.OPCItemWriteButton_Click(116)
'frm.OPCItemValueToWrite(117).Text=Module1.lizhix(3)'DT106100kg4
'Callfrm.OPCItemWriteButton_Click(117)
'frm.OPCItemValueToWrite(118).Text=Module1.lizhix(4)'DT108200kg1
'Callfrm.OPCItemWriteButton_Click(118)
'frm.OPCItemValueToWrite(119).Text=Module1.lizhix(5)'DT110200kg2
'Callfrm.OPCItemWriteButton_Click(119)
'frm.OPCItemValueToWrite(120).Text=Module1.lizhix(6)'DT112200kg3
'Callfrm.OPCItemWriteButton_Click(120)
'frm.OPCItemValueToWrite(121).Text=Module1.lizhix(7)'DT114200kg4
'Callfrm.OPCItemWriteButton_Click(121)
'frm.OPCItemValueToWrite(122).Text=Module1.lizhix(8)'DT116位移
'Callfrm.OPCItemWriteButton_Click(122)
Me.MSComm1.PortOpen=True
frm.OPCItemValueToWrite(31).Text=1'R1F通讯开始标志
Callfrm.OPCItemWriteButton_Click(31)
EndSub
PrivateSubMSComm1_OnComm()
'OnErrorResumeNext
DimiAsInteger
DimsCmdAsString
DimLengthAsInteger
DimArray1()AsByte
DimfuhaoAsSingle
DimzhAsInteger
Dimzh1AsInteger
Dimzh2AsInteger
Array1=Me.MSComm1.Input
Length=UBound(Array1)-LBound(Array1)+1
Fori=1ToLength-100
IfArray1(i)=255AndArray1(i+1)=255AndArray1(i+2)=255AndArray1(i+3)=170Then
CopyMemoryModule1.lizhiy(0),ByValVarPtr(Array1(i+4)),4
CopyMemoryModule1.lizhiy
(1),ByValVarPtr(Array1(i+8)),4
CopyMemoryModule1.lizhiy
(2),ByValVarPtr(Array1(i+12)),4
CopyMemoryModule1.lizhiy(3),ByValVarPtr(Array1(i+16)),4
CopyMemoryModule1.lizhiy(4),ByValVarPtr(Array1(i+20)),4
CopyMemoryModule1.lizhiy(5),ByValVarPtr(Array1(i+24)),4
CopyMemoryModule1.lizhiy(6),ByValVarPtr(Array1(i+28)),4
CopyMemoryModule1.lizhiy(7),ByValVarPtr(Array1(i+32)),4
CopyMemoryModule1.lizhiy(8),ByValVarPtr(Array1(i+36)),4
'CopyMemoryModule1.lizhi(0),ByValVarPtr(Array1(i+40)),4'100kg1
'CopyMemoryModule1.lizhi
(1),ByValVarPtr(Array1(i+44)),4'100kg2
'CopyMemoryModule1.lizhi
(2),ByValVarPtr(Array1(i+48)),4'100kg3
'CopyMemoryModule1.lizhi(3),ByValVarPtr(Array1(i+52)),4'100kg4
'CopyMemoryModule1.lizhi(4),ByValVarPtr(Array1(i+56)),4'200kg1
'CopyMemoryModule1.lizhi(5),ByValVarPtr(Array1(i+60)),4'200kg2
'CopyMemoryModule1.lizhi(6),ByValVarPtr(Array1(i+64)),4'
'CopyMemoryModule1.lizhi(7),ByValVarPtr(Array1(i+68)),4'
'CopyMemoryModule1.lizhi(8),ByValVarPtr(Array1(i+72)),4'
'CopyMemoryModule1.chongjisuohuidaoweixh,ByValVarPtr(Array1(i+76)),4'冲击缩回到位
'CopyMemoryModule1.chongjishenchudaoweixh,ByValVarPtr(Array1(i+80)),4'冲击伸出到位
'CopyMemoryModule1.jiting,ByValVarPtr(Array1(i+84)),4'急停信号
IfAbs(Module1.lizhiy(0))<=Abs(Module1.lizhi1c(0))Then
Module1.lizhi1(0)=(Module1.lizhiy(0))*Module1.lizhi1k(0)+Module1.lizhi1b(0)
ElseIfAbs(Module1.lizhi1c(0))(1))Then
Module1.lizhi1(0)=(Module1.lizhiy(0))*Module1.lizhi1k
(1)+Module1.lizhi1b
(1)
ElseIfAbs(Module1.lizhi1c
(1))(2))Then
Module1.lizhi1(0)=(Module1.lizhiy(0))*Module1.lizhi1k
(2)+Module1.lizhi1b
(2)
ElseIfAbs(Module1.lizhi1c
(2))Module1.lizhi1(0)=(Module1.lizhiy(0))*Module1.lizhi1k(3)+Module1.lizhi1b(3)
ElseIfAbs(Module1.lizhiy(0))>Abs(Module1.lizhi1c(3))Then
Module1.lizhi1(0)=(Module1.lizhiy(0))*Module1.lizhi1k(4)+Module1.lizhi1b(4)
EndIf
Module1.lizhi(0)=Module1.lizhi1(0)-Module1.lizhi1z(0)
IfAbs(Module1.lizhiy
(1))<=Abs(Module1.lizhi2c(0))Then
Module1.lizhi1
(1)=(Module1.lizhiy
(1))*Module1.lizhi2k(0)+Module1.lizhi2b(0)
ElseIfAbs(Module1.lizhi2c(0))(1))AndAbs(Module1.lizhiy
(1))<=Abs(Module1.lizhi2c
(1))Then
Module1.lizhi1
(1)=(Module1.lizhiy
(1))*Module1.lizhi2k
(1)+Module1.lizhi2b
(1)
ElseIfAbs(Module1.lizhi2c
(1))(1))AndAbs(Module1.lizhiy
(1))<=Abs(Module1.lizhi2c
(2))Then
Module1.lizhi1
(1)=(Module1.lizhiy
(1))*Module1.lizhi2k
(2)+Module1.lizhi2b
(2)
ElseIfAbs(Module1.lizhi2c
(2))(1))AndAbs(Module1.lizhiy
(1))<=Abs(Module1.lizhi2c(3))Then
Module1.lizhi1
(1)=(Module1.lizhiy
(1))*Module1.lizhi2k(3)+Module1.lizhi2b(3)
ElseIfAbs(Module1.lizhiy
(1))>Abs(Module1.lizhi2c(3))Then
Module1.lizhi1
(1)=(Module1.lizhiy
(1))*Module1.lizhi2k(4)+Module1.lizhi2b(4)
EndIf
Module1.lizhi
(1)=Module1.lizhi1
(1)-Module1.lizhi2z(0)
IfAbs(Module1.lizhiy
(2))<=Abs(Module1.lizhi3c(0))Then
Module1.lizhi1
(2)=(Module1.lizhiy
(2))*Module1.lizhi3k(0)+Module1.lizhi3b(0)
ElseIfAbs(Module1.lizhi3c(0))(2))AndAbs(Module1.lizhiy
(2))<=Abs(Module1.lizhi3c
(1))Then
Module1.lizhi1
(2)=(Module1.lizhiy
(2))*Module1.lizhi3k
(1)+Module1.lizhi3b
(1)
ElseIfAbs(Module1.lizhi3c
(1))(2))AndAbs(Module1.lizhiy
(2))<=Abs(Module1.lizhi3c
(2))Then
Module1.lizhi1
(2)=(Module1.lizhiy
(2))*Module1.lizhi3k
(2)+Module1.lizhi3b
(2)
ElseIfAbs(Module1.lizhi3c
(2))(2))AndAbs(Module1.lizhiy
(2))<=Abs(Module1.lizhi3c(3))Then
Module1.lizhi1
(2)=(Module1.lizhiy
(2))*Module1.lizhi3k(3)+Module1.lizhi3b(3)
ElseIfAbs(Module1.lizhiy
(2))>Abs(Module1.lizhi3c(3))Then
Module1.lizhi1
(2)=(Module1.lizhiy
(2))*Module1.lizhi3k(4)+Module1.lizhi3b(4)
EndIf
Module1.lizhi
(2)=Module1.lizhi1
(2)-Module1.lizhi3z(0)
IfAbs(Module1.lizhiy(3))<=Abs(Module1.lizhi4c(0))Then
Module1.lizhi1(3)=(Module1.lizhiy(3))*Module1.lizhi4k(0)+Module1.lizhi4b(0)
ElseIfAbs(Module1.lizhi4c(0))(1))Then
Module1.lizhi1(3)=(Module1.lizhiy(3))*Module1.lizhi4k
(1)+Module1.lizhi4b
(1)
ElseIfAbs(Module1.lizhi4c
(1))(2))Then
Module1.lizhi1(3)=(Module1.lizhiy(3))*Module1.lizhi4k
(2)+Module1.lizhi4b
(2)
ElseIfAbs(Module1.lizhi4c
(2))Module1.lizhi1(3)=(Module1.lizhiy(3))*Module1.lizhi4k(3)+Module1.lizhi4b(3)
ElseIfAbs(Module1.lizhiy(3))>Abs(Module1.lizhi4c(3))Then
Module1.lizhi1(3)=(Module1.lizhiy(3))*Module1.lizhi4k(4)+Module1.lizhi4b(4)
EndIf
Module1.lizhi(3)=Module1.lizhi1(3)-Module1.lizhi4z(0)
IfAbs(Module1.lizhiy(4))<=Abs(Mo