您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 一个基于PC的测试系统的最小系统
一个基于PC的测试系统的最小系统前言在工业控制领域,基于PLC的的控制系统是一种成熟的的控制系统,在着成熟,完备,充足规范化的外围部件以及良好的维护性,在自动化领域有着不可代替的作用.但是,PLC在数据处理速度和能力,人机界面,网络功能方面比起PC有着明显的不足,而且,通常PLC并不支持高级语言编程,在以在测试领域,通常采用基于PC的测试系统.PC所不具备的PLC与外界交互的功能,则由专业板卡代替.以上为一已之见,以下是本人在网上查到的专家的说法:作为传统主流控制器的PLC,它拥有稳定性好、可靠性高、逻辑顺序控制能力强等优点,在自动化控制领域具有不可替代的优势。但有一大遗憾:其封闭式架构、封闭式系统(研发必须具备自己或OEM的CPU、芯片组、BIOS、操作系统、梯形图编程软件)、较差的开放性势必会造成其应用上的壁垒,也增加了用户维修的难度和集成的成本。有人断言,在不久的将来,基于PC的控制器将会逐步取代PLC而成为主流控制设备。――机电工业技术网系统系统构成:PC+控制板卡+设备.电子工程师说,将一堆电子部件连接起来,注入工程师的思想(单片机程序),使这些东西按照人的要求动作,就是一个嵌入式系统.基于PC的系统变然,将一些设备用各种通信线与PC连接起来,注入思想(测试软件),就是一个测试系统.PC:解释这个名词纯粹浪费我的口水,并侮辱你的智商.板卡:可以插在你电脑上PCI插槽(白色的那种,还问!),ISA插槽,或者USB口,等等,可以扩充电脑对外交互功能的东东.如GPIB卡,RS232,RS485,IO卡,LAN,CAN.对了,CAN是什么东东,谁有认识告诉我,靠,俺在书店看到单单说这个CAN的就可以编厚厚的一大本书,你帮我也看一份啦,你看完了再告诉我啦.一个测试系统的工作过程就是PC根据工作需要不断给设备,仪器发送指令,使设备仪器读作,并读取设备仪器的数值,测试软件根据仪器传回的数值作出计算和处理,并给出相应反馈.所以,系统的大小是相通的,不同的只是其复杂程序.俺最怕的就是复杂的东西了,所以这儿只介绍一个袖珍型的测试系统,复杂的等你来搞啦,你搞会了你再来教我啦.系统需求:用于产品QC测试,测试要求好简单,要求能逐一测试产品的输入输出阻抗,电流以及零位输出,产品要求在几种电压下分别进行测试,测试后软件自动判别Pass,或者Fail(真他妈的有意思,在韩资企业中是OK或者NG),不同型号的产品参数要求不同,每种型号产品参数只要求工人第一次使用时输入.测试完成后数据自动存档,并可打印EXCEL报表.可编程直流电源:Agilent无疑是行业翘楚,成熟的技术,稳定的性能,优质的服务.但你慢慢用到够啦,这么贵.这个测试不需要太稳定,精度高的电源,一般就可以了,用台湾茂迪Motech可编程直流电源啦,只支持RS232通信,够用了.:)测量仪器:测量仪器这方面,你最好不要节省.在这儿隆重向你高调推介:Keithley公司的产品,一般关系的人俺是不会告诉他的,以后你为你们公司选型选了这个而立功的话,可不要忘记俺."模拟测量专家"这个称号可不是这么容易得来的,他们公司的客服资料胜过任何高校教材.Keithley2000万用表支持RS232,GPIB接口,那就用RS232啦,省一张GPIB卡.:):):)电路通道切换:又要测输入,又要测输出之类的,电路就不能一成一变了,肯定要控制一些模拟开关,如何用电脑输出控制信号来控制这些模拟开关(继电器)的通断?没错,你想法很好,一些有一点点上位机,下位机概念的人,马上想到了用单片机做个下位机,PC将数据信号传到下位机,下位机根据信号再控制继电器动作.没错,聪明!后生仔,有前途!继续努力啦,你实得架!不过这样又增加了复杂性,增加了成本,降低了可维护性,还有,你以为我不知道,你说用上位机,下位机,肯定又想用一个RS232的啦,USB?你会不会啊!再用232的话就用到第三个了,一般电脑只有一个串口,多的两个,没见过有三个的,你想加张扩展卡啊?钱呢?在这儿告诉你一个投机的方法,电脑有一个并口(LPT)也就是用来接打印机的接口,现在好多打印机都用USB口了,还在在企业用的都是网络打印机啦,所以这个并口是空着的,可以控制这个并口输出8位并行数据,也就是说大这个并口可以同时控制8个继电器的或通或断,当然,好学的你,上进的你,聪明的你,懂一点数字电路的你,可能会反应说,8位并行输出,加一点外围解码电路,控制256个继电器都可以啦.果然聪明,但这儿,8个够了,不用解码电路.LPT接口PIN2-PIN9是8位并行输出的0到7位,高电平为正,低电平为负,PIN22-25为公共地线.并行输出位与公共地之间最大输出电流是十几毫安,可以驱动一个发光二极管,但并不足以驱动一个继电器,一个小小的继电器线圈都几十毫安啦,更何况是大的.传统的增大驱动的做法是前面加一个限流电阻后接一个三极管的基极,利用三极管的饱和状态做一个开关用.有时候只要一两个管脚增大驱动能力这是很可行的做法.但管脚一多,我再偷偷向你推荐:专用IC,UNL2003.2003用于反相驱动放大,一片IC有七对反相器,其低电平输出吸收电流可高达几百毫安,可驱动绝大多数电子设备.LPT口并行数据输出,经74HC244缓冲,再经2003反相驱动放大以驱动继电器之类的东西,这是一种成熟的电路,各专业电子设备随处可见.还是那句话,一般人俺是不会告诉他的,如果你学到点东西的话,记得到时请我饮茶松骨#%$直落通宵啊.硬件方案决定,至于具体电路怎么设计,怎么搭建,再说就真的侮辱你的智商了.PC:选一台有两个串口和一个打印口的电脑即可.打印机:照例接根网线连网络打印机.如何做网线,拉网线,这么白痴的问题,是我的绝技来的,我偏不告诉你.软件:用VB6.0做,企业级应用软件用这个做没错了,简单易懂,容易开发,维护方便.当然,精通dotNet,C/C++,DELPHI,JAVA甚至什么大蟒蛇,珍珠,红宝石这些武林绝技的人,一听说VB就摇头,认为用VB侮辱了他的智商.但是,企业中的应用软件,其实就相当于日常生活中的杀一只鸡,任何武林高入可能都会吃鸡肉的,要吃鸡的时候就要杀了,吃鸡的时候没人问你的鸡是用柴马杀的,还是胡斐的冷月宝刀,或者是张无忌的冷月宝刀.对于整个软件的规划,我是知道有软件工程这个东西.但是一般正规软件公司都未必照这个规范去走,更何况是一间工厂,尤其是一间山寨工厂.所以,我脑海的流程就是整个软件工程的流程:首先建一个数据库,用以存储各型号产品的参数,测试时时操作人员选择了产品型号后软件读出产品参数;再用一个数据库专门用来存储产品测试数据,可以根据需要生成EXCEL报表,打印的话直接用EXCEL打印即可;人机交互过程对对操作员要求比较简单,操作员连接好产品后,按一下回车键就可以测试,测试结果判别以及数据存储,处理员工可以不再关心,计算通过打印口输出控制电平控制通道切换,RS232控制可编程直流电源电压以及读取Keithley万用表结果,所以软件与硬件接口方面编好并口控制程序和RS232程序即可.产品参数数据库:用ACCESS啦,你想用SQLSERVER也可以,如果你习惯用一把很大的刀在家里杀鸡的话.就一个表格,存储产品参数,数据有产品型号(TXT),电压1(NUM),电压2(NUM),输出类型,输出SEPC(上下限),输入阻抗SPEC(上下限),输出阻抗SPEC(上下限),电流SPEC(上下限),等等,等等.数据存储数据库:字段有,产品批号,产品序列号,测试输入阻抗值,测试输出阻抗值,测试电流值,测试员,测试时间,判定结果,等等等等.软件编程中软件与数据库接口有ADO,RDO,DAO等等,随便你选择哪一种啦,反正要求很简单,能读能写就可以了.OK,方案已经确定,你,负责制电路板与电路调试,你负责软件编写和调试,你负责各设备,仪器的准备和安装,最后我来验收,OK?就这样定了……发你个梦啦,所以的事,你自己做啦,你只不过是个小卒罢了,全部自己做完啦!从作板,焊元接件开始!望乜野望,唔使做啊,博炒啊!F##K!,$%$^#&&*#*!!!VB6.0RS232串口编程:RS232有着悠久的历史,成熟的技术,所以虽然各方面都显得相当落后,但是,还是有相当多的使用.你不懂的话偷偷点找点资料看去,千万不要和别人说.VB对串口的编程,真的是简单得不能再简单了,VB已经做成了一个控件,那个图标是的台电话机的叫MSCOMM东东,使用时将它放在VB界面里面,然后程序调用控制的参数就可以了.MSCOMM控制和TIMER控件一样,都是运行时不可见的.值得一提的是,VB6有学习版,专业版,企业版几种,学习版是没有这个东东的.那些一直装免费学习版的学生没见过这个控制就不足奇怪.要使用这个控制,必须先将这个东东引用到工具栏中,方可象其他一般控件一样使用.方法:Project|Components…|Controls,选中MicrosoftCommcontrol6.0,点OK确认,这样,那个电话图标就已经引用到工具栏中了.MSCOMM控件有很多多属性和方法可以调用,串行通信的协议参数可以在引用时设置,也可以在程序中设置,如果波特率9600,奇偶校验:无,数据位:8,停止位:1的设置为”9600,n,8,1”.要软件要设备之间能通信,设备内部的通信协议设置必须和软件的设置一样,有些设备的通信协议参数是固定,不可改变的,需要软件设置和设备一样.但大多数设备RSR232设置的通信协议都差不多,为”9600,n,8,1”,日本鬼子比较变态一点,它们的通信数据位一般是7位,而不是8位的.通信协议设置好了之后,MSCOMM这个控件最常用的属性是input,和Output,Input用于将设备仪器的数据读到PC中,Output将程序指令发送到设备中.指令语句:各支持远程控制的设备仪器都有自己的指令系统,并不统一,各大公司Agilent拥有自己的规范,但并不能成为行业标准,这给编程使用带来一定的麻烦.各设备仪器的使用说明书通常都会有本设备指令系统资料.VB6引用MSCOMM控件与MOTECH可编程直流电源的例程如下:PublicstrVAsStringDimstr3AsStringDimstr4AsStringDimstr5AsString’’’定义字符串变量IfMSComm2.PortOpen=TrueThenMSComm2.PortOpen=False’’’在设置协议之前,COMM口必须先关闭MSComm2.CommPort=2’’COM口号MSComm2.Settings=2400,n,8,1’’’协议参数,参数设备出厂时已固定MSComm2.PortOpen=True‘’’’打开端口SubVset(VxAsDouble)‘’’’定义一个函数Vset,用来设置电源电压'DimstrVAsstingstrV=CStr(Vx)MSComm2.Output=VSET1&strV&vbCr&vbLfTimeDelay(0.4)‘’’’延时0.4秒,软件必须要等待设备的慢.速度.EndSub以下是读取当前电源实际电压的函数:SubShowvoltage()str4=MSComm2.Input‘’’先读一次,可将缓冲器里面的数据先清掉str3=VOUT1&vbCr&vbLfMSComm2.Output=str3‘’’发送查询指令”VOUT1”查询电压CallTimeDelay(0.5)‘’’延时等待处理完str4=MSComm2.Input‘’’读取数据CallTimeDelay(0.5)str5=Mid(str4,1,5)‘’’取数据有用部分FrmTestZero.StatusBar.Panels.Item(1).Text=测试零位,当前电源电压为:&str5&V‘’’’测试界面显示当前电压.EndSub延时子程序:FunctionTimeDelay(DTAsDouble)DimFirstTimerAsDoubleDimSecondTimerAsDoubleFirstTimer=TimerDoDoEventsSecondTim
本文标题:一个基于PC的测试系统的最小系统
链接地址:https://www.777doc.com/doc-2823824 .html