《线路检测系统(共19页).doc》由会员分享,可在线阅读,更多相关《线路检测系统(共19页).doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上线路检测系统简介 这是作者在机械制造厂时无心制作的一个小系统,还在实验阶段就离职了,呵呵所以就没继续下去。因为在实验阶段所以就少不了仿真,这里将会教你如何通过虚拟串口驱动在一台电脑就能够实现VB6.0与Proteus 7来模拟单片机通过RS232串口与VB的通讯。开发背景 在工业控制上我们会经常用到很多线路(如:单芯线、二芯线及多芯线),这些线路中有的是现成品,有的则需要我们根据控制要求进行设计并制作。有时也会根据现有线路做出跟多类似的线路,在制作的过程中我们不得不把现有线路进行拆分才知道线路两端的连接情况或者用万用表对两端针头一个一个地检测,这样既费时又容易出错。在
2、我们制作线路时未免会出现人为的错误,比如在焊接时容易出现虚焊、漏焊、焊锡过多而造成两线路短接、线头处理不当造成的短接等都会造成意想不到的事故,给操作人员的生命安全带来威胁、给公司财产带来损失、对社会造成不良影响。为了减少我们在制作线路时的一些繁琐步骤及降低人为的错误,避免危害事故的发生;我们特此制作了“线路检测系统”。主要功能1) 线路两端的连接方式。每种线路类型均提供公头和母头两个接口以适应不同的接口线路的检测,把线路连端接对应接口上(注:监测器分输入端和输出端,要检测的线路两端不可同时接到输入端或者输出端;必须一端接到输入端,另一端接到输出端),按“检测”按钮开始检测。检测器上的显示器开始
3、从输入端接头的一号线对应另一端的那些线号开始显示直到检测完成;可以按“重复显示”按钮进行重复显示线路的检测结果。 2) 上位机进行显示、分析、保存结果。本系统可以通过232串口与上位机进行连接,在上位机上打开“线路检测”软件;同时确定上位机与检测器连接好,这里软件部分默认的串口连接端口为“端口1”,用户可以在打开软件后单击“端口选择”按钮对端口进行选择,使其与实际连接的接口相对应,这样就可以在上位机的软件上进行分析了。分析得到的结果还可以以work文档或txt文档进行保存。可以在软件下方进行某个线号进行查询了;另一端与其对应的线号 。 上微机软件开发打开已经安装好了的VB6.0 软件,如下图:
4、打开软件后会出现如图:单击此处选择“标准 EXE”单击“打开”如下,我们就可在此进行软件的布局了!公共对话框和Mscomm 控件的添加。进行串口通讯我们用到 Mscomm 控件,对内容的保存用到公共对话框。2单击1右击空白处或者单击“工程”“部件”2单击1选择出现如图出现此两图标窗体图标的改变。我们可以把窗体图标改为我们想要的效果,进行如下进行改变选择窗体并对其属性进行设置2选择相应图标,单击“打开”1单击图标已改变进行软件界面设置。最终结果如下:代码的编写:双击窗体,对窗体进行初始化。Private Sub Form_Load() 初始化窗口 MSComm1.CommPort = 1 设置通
5、信端口号(为COM1) MSComm1.Settings = 9600,n,8,1 设置串口1参数 MSComm1.InputMode = 0 接收文本型数据 MSComm1.PortOpen = True 打开通信端口 fx.Enabled = False “分析”按钮不可用 qd.Enabled = False 线号查询的“确定”按钮不可用 qcjg.Enabled = False “清除结果”按钮不可用 Text5.Enabled = False 线号查询不可用 Text4.Enabled = FalseEnd Sub“设置端口”按钮: Private Sub Comsz_Click()
6、 端口属性设置fx.Enabled = Falseqd.Enabled = Falsejc.Enabled = Falseqcjg.Enabled = Falsesave.Enabled = FalseText2.Enabled = FalseComsz.Enabled = FalseText5.Enabled = FalseText4.Enabled = FalseFrame1.Visible = TrueMSComm1.PortOpen = FalseEnd Sub设置完毕单击设置端口面板的“确定”按钮,确定端口的设置。Private Sub Command2_Click() 端口设置完毕
7、、确定fx.Enabled = Trueqd.Enabled = Truejc.Enabled = Trueqcjg.Enabled = Truesave.Enabled = TrueText2.Enabled = TrueComsz.Enabled = TrueText5.Enabled = TrueText4.Enabled = TrueMSComm1.CommPort = Val(Combo1.Text) 端口号的设置Dim m As Variantm = Combo2.Text & , + Combo3.Text & , + Combo4.Text & , + Combo5.TextM
8、SComm1.Settings = m 端口参数设置MSComm1.PortOpen = True 打开端口Frame1.Visible = False 关闭端口设置界面End Sub“检测”按钮:Private Sub jc_Click() 检测并向下位机发送字符“1”作为下微机向上微机发送信息的命令符If jc.Caption = 检测 Then jc.Caption = 显示结果 按钮由“检测”变为“显示结果” fx.Enabled = False qcjg.Enabled = False save.Enabled = False qd.Enabled = False Text4.Ena
9、bled = False Text5.Enabled = False MSComm1.PortOpen = True MSComm1.Output = Trim(1) 往输出口送字符“1”向下微机发送 Else jc.Caption = 检测 如果按钮为“显示结果”则变为“检测” fx.Enabled = True qcjg.Enabled = True save.Enabled = True qd.Enabled = True Text4.Enabled = True Text5.Enabled = True End If Dim buf$ buf = Trim(MSComm1.Input)
10、 将缓冲区内的数据读入buf变量中 If Len(buf) 0 Then 判断缓冲区内是否存在数据 Text1.Text = Text1.Text + Chr(13) + Chr(10) + buf 回车换行 End If If Len(buf) = 0 And jc.Caption = 检测 Then 判断缓冲区内是否存在数据 pp = MsgBox(无结果!请检查线路是否接好或其它原因!, 16) End IfEnd Sub“清除结果”按钮:Private Sub qcjg_Click() 清除结果按钮 Text2.Text = Text1.Text = fx.Enabled = Fals
11、e qcjg.Enabled = False save.Enabled = False qd.Enabled = False Text4.Enabled = False Text5.Enabled = FalseEnd Sub“分析”按钮:Private Sub fx_Click() 分析Longs 调用分析函数fx.Enabled = FalseEnd Sub“保存”按钮:Private Sub save_Click() 保存结果 If Text2.Text = Then m = MsgBox(请先分析结果!, 16) Exit Sub End If CommonDialog1.ShowSa
12、ve 调用公共对话框的保存 If CommonDialog1.FileName Then 读取 Open CommonDialog1.FileName For Output As #1 Print #1, Text2.Text Close #1 End IfEnd Sub线号查询的“确定”按钮:Private Sub qd_Click() 确定Zxh 调用查询函数End Sub“退出”按钮:Private Sub tc_Click() 退出系统MSComm1.PortOpen = False 关闭通信口 Unload MeEnd Sub检测函数:Public Sub longs() 检测函数
13、检测字符数组长度,并输出分析检测结果Dim i As VariantDim j As Variant Dim n As Variant Dim k As Variant Dim y As Variant Dim c As VariantDim a As StringDim b As VariantDim X As Integera = Text1.Textb = Split(a, ,)c = Len(Trim(a)X = (c - 2) / 3i = 0n = 0Do If b(i) = b(i + 2) Then Do i = i + 2 n = n + 2 Loop Until b(i)
14、b(i + 2) Do While n = 0 y = y + b(i - n + 1) & n = n - 2 Loop Text2.Text = Text2.Text + b(i) & 号线 & - & y & 号线 End If Text2.Text = Text2.Text + b(i) & 号线 & - & b(i + 1) & 号线 i = i + 2Loop Until i = X Do While i X Text2.Text = Text2.Text + b(i) & 号线 & - & b(i + 1) & 号线 & vbCrLf vbCrlf 为换行函数 i = i + 2
15、 LoopEnd Sub线号查询函数:Public Sub zxh() 单根线检测,检测另一头与之对应的所有线号Dim c As VariantDim a As StringDim b As VariantDim X As VariantDim i As VariantIf Text1.Text = Then m = MsgBox(请先检测信息并显示!, 16) Exit SubEnd Ifa = Text1.Textb = Split(a, ,)c = Len(Trim(a)X = (c - 2) / 3i = 0For i = 0 To X Step 2 Do While i X If V
16、al(Text4.Text) = Val(b(i) Then Text5.Text = Text5.Text + b(i + 1) & End If i = i + 2Next LoopEnd SubProteus 7 电路原理图设计2项目的建立1编辑界面单击此处,选择要放置的元件元件详细信息封装图原理图双击下载相应的十六进制文件2在空白处单击放置元件1选择相应元件最终结果LCD显示单击此按钮进行LCD显示单击此处进行仿真先来个效果图吧单击仿真后LCD出现欢迎界面 Proteus 7 电路原理图按如图进行电路设计1、 输入部分输入部分由三块“4514”组成2、 输出部分输出部分由三块“7415
17、0”组成3、 通讯部分双击此元件用来代替进行 仿真。双击“COMPIM”(上左图)设置参数如下此为输入部分,其中数字“1,2,3 。代表线号设置端口参数输出部分,线号代表与输入对应,如“1”表示与输入“1”号线连接打开仿真打开上微机软件如图单击,再次单击单击2单击1在此如入要查询的线号,如“1”单击“保存”可以保存结果! Keil 的运用建立工程新建程序文档保存文档对其文件名进行修改,并以 “.c ”为后缀作为c文件保存。程序编辑并保存把程序文档添加到项目中选择相应的文件进行添加,单击“Add”添加添加之后出现如图以同样的方法添加“1602.c”文件编译找出错误修改程序编译找出错误修改程序,直到程序无误。如编译结果如下:单击选择观测I/O口 “ Line Detection” 0 Error(s), 0 Warning(S).单击进行仿真仿真在此添加要观测的变量观测变量数组a ,a数组存放了检测结果数据。由于作者是个初学者的菜鸟级,此文仅用来交流并期望能得到高手们的指导。文中还有很多地方没有提及或说得不周,望谅解!如有需要欢迎与作者联系:QQ: 或进作者空间留言。专心-专注-专业
限制150内